在线观看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

    文章

    1123

    瀏覽量

    100627
  • 模擬電壓
    +關注

    關注

    6

    文章

    64

    瀏覽量

    18359
  • C++
    C++
    +關注

    關注

    22

    文章

    2114

    瀏覽量

    73860
  • Qt
    Qt
    +關注

    關注

    1

    文章

    308

    瀏覽量

    38072
收藏 人收藏

    評論

    相關推薦

    低成本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 ?793次閱讀

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

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

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

    本文以帶有片上A/D轉換C8051F340處理和USB接口芯片CH375為基礎,設計了一款可對100 kHz以下的低頻模擬信號進行10位深度采樣的低成本
    發表于 05-11 11:07 ?1684次閱讀
    低成本的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 ?5593次閱讀

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

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

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

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

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

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

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

    通道數據采集器的特點 高精度:多通道數據采集器具有高精度的模擬-數字轉換(ADC),可以精確地采集模擬
    的頭像 發表于 07-02 09:05 ?1080次閱讀
    主站蜘蛛池模板: 日本三级精品 | 国产在线麻豆自在拍91精品 | 中文字幕一精品亚洲无线一区 | 国产伦精品一区二区三区在线观看 | 欧美色交 | 国产精品三级在线播放 | 天天干夜夜玩 | 五月综合激情视频在线观看 | 国产三级国产精品 | 超级毛片| 色偷偷.com | 黄色大全片 | 天天射日 | 51视频在线观看免费国产 | 午夜精品久久久久久99热 | 日韩一级精品视频在线观看 | 中文字幕第五页 | 青草午夜精品视频在线观看 | 性生大片免费观看无遮挡 | 国产无套视频在线观看香蕉 | 免费观看四虎精品国产永久 | 免费男女视频 | 中文天堂最新版在线中文 | 乱高h亲女 | 日韩一级特黄毛片在线看 | 亚洲第一狼人社区 | 天天摸日日舔 | 日日拍拍| 亚洲国产欧美日韩一区二区三区 | 情趣店上班h系列小说 | 91视频看看| 免费一级特黄 欧美大片 | 夜夜骑首页| 美女扒开下面让男人捅 | 国产性较精品视频免费 | baoyu777永久免费视频 | 日韩亚洲欧美日本精品va | 四虎影视永久地址 | 色吧首页dvd | 国产精品黄网站免费观看 | 国产精品亚洲四区在线观看 |