在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于NI 數據采集器的QT C++應用程序開發測試輸出模擬電壓信號

liangyuhc ? 來源:戀 ? 作者:戀 ? 2023-06-26 17:19 ? 次閱讀

前言:
最近項目需要用到NI的數據采集設備,之前的項目在使用NI的采集設備時更多用的labview編寫相關程序,也能夠快速搭建相關的采集平臺,但是最近更多的使用的QT c++,前期的的其他工作均是有QT完成,所以這次采用QT C++平臺編寫相關程序,僅對QT調用NI設備API的配置做記錄。

NI-DAQmx安裝:
NI官網下載DAQmx。

poYBAGSZV4yAKLT8AACT32dFSTg281.png

根據需要下載相應的版本,我下載的是最新版本。

下載完成之后,安裝需要選擇 ANSI C Support。

pYYBAGSZV5eALvaLAADOPogITKo327.png

新建QT工程:
工程可選擇32位編譯器或者64位編譯器均可,添加外部庫和頭文件。網上很多人說需要選擇32位編譯器是因為沒有找到相應的64位庫導致。

poYBAGSZV6CAbVknAAB0HaJfcFU811.png

64位庫路徑:

C:Program Files (x86)National InstrumentsSharedExternalCompilerSupportClib64msvc

32位庫路徑:

C:Program Files (x86)National InstrumentsSharedExternalCompilerSupportClib32msvc

測試代碼:
測試代碼是應用的NI提供的示例代碼。

#include
#include
#include
#include
#define DAQmxErrChk(functionCall) if( DAQmxFailed(error=(functionCall)) ) goto Error; else
#define PI 3.1415926535
int32 CVICALLBACK DoneCallback(TaskHandle taskHandle, int32 status, void *callbackData);
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
int32 error=0;
TaskHandle taskHandle=0;
float64 data[1000];
char errBuff[2048]={'?'};
int i=0;
for(;i<1000;i++)
// data[i] = 0+9.95*sin((double)i*2.0*PI/50.0);
data[i]=10-10*(double)i/1000;
/*********************************************/
// DAQmx Configure Code
/*********************************************/
DAQmxErrChk (DAQmxCreateTask("",&taskHandle));
DAQmxErrChk (DAQmxCreateAOVoltageChan(taskHandle,"Dev1/ao0","",-10.0,10.0,DAQmx_Val_Volts,NULL));
DAQmxErrChk (DAQmxCfgSampClkTiming(taskHandle,"",1000.0,DAQmx_Val_Rising,DAQmx_Val_ContSamps,1000));
DAQmxErrChk (DAQmxRegisterDoneEvent(taskHandle,0,DoneCallback,NULL));
/*********************************************/
// DAQmx Write Code
/*********************************************/
DAQmxErrChk (DAQmxWriteAnalogF64(taskHandle,1000,0,10,DAQmx_Val_GroupByChannel,data,NULL,NULL));
/*********************************************/
// DAQmx Start Code
/*********************************************/
DAQmxErrChk (DAQmxStartTask(taskHandle));
printf("Generating voltage continuously. Press Enter to interruptn");
getchar();
Error:
if( DAQmxFailed(error) )
DAQmxGetExtendedErrorInfo(errBuff,2048);
if( taskHandle!=0 ) {
/*********************************************/
// DAQmx Stop Code
/*********************************************/
DAQmxStopTask(taskHandle);
DAQmxClearTask(taskHandle);
}
if( DAQmxFailed(error) )
printf("DAQmx Error: %sn",errBuff);
printf("End of program, press Enter key to quitn");
getchar();
return a.exec();
}
int32 CVICALLBACK DoneCallback(TaskHandle taskHandle, int32 status, void *callbackData)
{
int32 error=0;
char errBuff[2048]={'?'};
// Check to see if an error stopped the task.
DAQmxErrChk (status);
Error:
if( DAQmxFailed(error) ) {
DAQmxGetExtendedErrorInfo(errBuff,2048);
DAQmxClearTask(taskHandle);
printf("DAQmx Error: %sn",errBuff);
}
return 0;
}
測試結果:

poYBAGSZV6yAKI-VAAAa5mCpipU403.png


代碼運行正常。

pYYBAGSZV8CAGZlpAA2HdoMgmOo848.png

輸出正常。
————————————————
審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • NI
    NI
    +關注

    關注

    19

    文章

    1124

    瀏覽量

    101395
  • 模擬電壓
    +關注

    關注

    6

    文章

    64

    瀏覽量

    18514
  • C++
    C++
    +關注

    關注

    22

    文章

    2116

    瀏覽量

    74498
  • Qt
    Qt
    +關注

    關注

    1

    文章

    310

    瀏覽量

    38556
收藏 人收藏

    評論

    相關推薦

    低成本NI-USB-6009數據采集卡,數據采集,提供Labview使用指導

    `NI USB-600914位, 48 kS/s低價位多功能數據采集卡(二手95新,898元,全網最低,現貨100件) · 8路模擬輸入通道(14位分辨率,48 kS/s) ·2路模擬輸出
    發表于 08-15 10:58

    關于NI myRIO模擬信號數據采集

    我使用NI myRIO進行模擬信號數據采集程序很簡單,如下:然后由外部函數信號發生發出1K
    發表于 11-08 17:19

    不是NI公司的數據采集器,怎么加入labview進行采集呢?

    不是NI公司的數據采集器,怎么加入labview進行采集呢?
    發表于 11-08 19:08

    基于QT/Embedded的可變情報板應用程序開發

    基于QT/Embedded的可變情報板應用程序開發 QT是奇趣科技推出的一種多平臺的C++圖形用戶界面
    發表于 03-03 09:36 ?836次閱讀

    基于QT/Embedded的可變情報板應用程序開發

    基于QT/Embedded的可變情報板應用程序開發  0引言   QT是奇趣科技推出的一種多平臺的C++圖形用戶界面
    發表于 03-09 10:39 ?964次閱讀

    低成本的U盤數據采集器設計

    本文以帶有片上A/D轉換C8051F340處理和USB接口芯片CH375為基礎,設計了一款可對100 kHz以下的低頻模擬信號進行10位深度采樣的低成本
    發表于 05-11 11:07 ?1732次閱讀
    低成本的U盤<b class='flag-5'>數據采集器</b>設計

    基于C++數據采集器的設計與實現

    數據采集器是普遍用在超市、商場、各大小企業之中的數據采集設備。本文主要介紹如何基于C++語言來設計數據采集器,并根據數據庫的基本原理,成功設
    發表于 04-15 19:34 ?0次下載
    基于<b class='flag-5'>C++</b>的<b class='flag-5'>數據采集器</b>的設計與實現

    C#教程之數據采集器讀寫

    C#教程之數據采集器讀寫,很好的C#資料,快來學習吧。
    發表于 04-21 09:52 ?41次下載

    跨平臺C++圖形用戶界面應用程序QT4中文教程手冊

    跨平臺C++圖形用戶界面應用程序QT4中文教程手冊
    發表于 08-29 14:22 ?0次下載

    通用采集器電壓信號采集電路(基于FPGA)

    機載通用采集器用于機載環境下各類常規信號采集。不同于專用采集器測試任務單一固定,通用采集器被測
    發表于 11-01 14:35 ?21次下載
    通用<b class='flag-5'>采集器</b><b class='flag-5'>電壓</b>量<b class='flag-5'>信號</b><b class='flag-5'>采集</b>電路(基于FPGA)

    什么是數據采集器數據采集器的分類有哪些

    數據采集器是一種具有現場實時數據采集、處理功能的自動化設備。一般具備實時采集、自動存儲、即時顯示、即時反饋、自動處理、自動傳輸等功能,為現場數據的真實性、有效性、實時性、可用性提供了保
    發表于 03-11 17:41 ?5746次閱讀

    多通道數據采集器怎么看數據

    多通道數據采集器是一種廣泛應用于工業自動化、科研實驗、醫療設備等領域的設備,它可以同時采集多個通道的模擬信號或數字信號,并將采集到的
    的頭像 發表于 07-01 16:50 ?1074次閱讀

    多通道數據采集器采集什么

    通道數據采集器的功能、特點、應用領域以及發展趨勢。 一、多通道數據采集器的功能 模擬信號采集:多通道數據采集器可以
    的頭像 發表于 07-02 09:02 ?1093次閱讀

    多通道數據采集器的作用有哪些

    數據采集器的作用、特點、應用領域以及發展趨勢。 一、多通道數據采集器的作用 實時數據采集 多通道數據采集器可以實時采集各種
    的頭像 發表于 07-02 09:04 ?1145次閱讀

    多通道數據采集器的特點和功能有哪些

    通道數據采集器的特點 高精度:多通道數據采集器具有高精度的模擬-數字轉換(ADC),可以精確地采集模擬
    的頭像 發表于 07-02 09:05 ?1406次閱讀
    主站蜘蛛池模板: 美女黄频 | 天堂免费视频 | 欧美zoozzooz性欧美 | 一级视频在线观看免费 | 久久成人性色生活片 | 亚洲第一免费播放区 | 狠狠色丁香婷婷久久 | 女同毛片免费网站 | 国产香蕉在线精彩视频 | 91福利网站 | 久久久久久久综合色一本 | 伊人亚洲 | 日日草夜夜草 | 91po狼人社在线观看 | 三级视频国产 | 求网址你懂的手机在线观看网站 | avbobo在线观看 | 狠狠色噜噜狠狠狠97影音先锋 | 国产精品主播在线 | 亚洲乱码一区二区三区在线观看 | 国产h在线 | 超薄肉色丝袜精品足j福利 超黄视频在线观看 | 日本黄色录像视频 | 五月婷婷七月丁香 | h国产视频 | 狠狠狠狠狠狠 | 香蕉视频网站在线播放 | 久久国产色 | 性欧美丨18一19 | 综合精品| 精品玖玖 | 天天搞天天干 | 91日本视频 | 超色视频 | 国产午夜精品视频 | 全国男人天堂网 | 激情都市亚洲 | 狠狠噜天天噜日日噜 | 思思久久96热在精品不卡 | 爱爱帝国亚洲一区二区三区 | 美女被日出白浆 |