今天我們來介紹如何編寫在matlab中編寫指令碼來讀取串列埠資料。
matlab中內建了串列埠功能函式,我們在使用時只需要呼叫函式進行相應配置即可,我們來看串列埠函式。
serial(s_p,'parity','none','baudrate',baudrate1,'databits',8,'stopbits',1)
這個函式用來對串列埠進行設定,其中s_p為埠號,如com1、com2等,『parity』後面為校驗位,一般為none,'baudrate』後面位波特率,'datebits』後面為資料位,一般為8,'stopbits』後面為停止位,一般為1。
後面還可以加入讀取的位元組數,我們這裡在下面進行設定。
接下來我們將這個設定好的串列埠命名為s,可以直接進行設定:
s=serial(s_p,'parity','none','baudrate',baudrate1,'databits',8,'stopbits',1)
下面我們來開啟這個串列埠:
fopen(s)
我們先執行這兩行指令碼,成功之後在命令列視窗中可以看到相應的資訊:
讀取串列埠資料的命令為fread和fscanf兩個,其中fcanf為讀取字串,我們這裡來讀取字串。
a=fscanf(s,'string',255)
這裡有三個引數,第乙個為串列埠名稱,第二個為匹配的資料型別,第三個為接收的位元組數。
我們來執行一下。
可以看到a的值與串列埠助手中接收的資料一致,為從1到10,再從10到1.
最後,一定要注意在使用完串列埠後關閉串列埠,否則將無法使用。如果我們不關閉想要再次開啟,就會出現這種情況:
這是因為串列埠已經被占用,就算用串列埠助手也無法開啟這個串列埠。
所以要使用關閉串列埠的函式來進行關閉:
fclose(s)
裡面的引數為要關閉的串列埠名稱。
如果開啟的串列埠比較多,或者我們不知道要關閉哪些串列埠,我們可以使用』instrfind』命令來檢視各個埠的狀態。
我們可以看到』com4』被開啟。
也可以直接將所有開啟的串列埠全部關閉。
delete(instrfindall)
今天的分享就這些了,希望大家及時學習。
下期預告:
利用gui製作串列埠除錯工具的上位機。
##本節內容已上傳部落格,請檢視。
長按關注
點點「在看」
Matlab串列埠讀取錯誤
matlab串列埠讀取錯誤 fwrite scom,uint8 hex2dec moter monitor moto num outdec fread scom,17,uchar outhex dec2hex outdec outstr reshape outhex.1,motohz hex2dec...
串列埠 matlab 示波器
具體的,我使用115200bps的串列埠速度傳送資料,然後在pc上用串列埠獵人接收,並將資料儲存成txt格式文字,完成後開啟matlab,在mtalab中執行本程式即可。由於fpga串列埠程式不難,自己編寫即可,需要注意的是串列埠傳送和接收順序 串列埠一般是由低到高傳送 需要保證在pc上還原出的資料...
讀取串列埠資料 MATLAB讀取JY901串列埠資料
這個jy901的體積比較小,最關鍵是使用起來很方便。串列埠通訊,基本上線一接。驅動一裝。開啟上位機三個軸的角度資料就出來了。借商家的上位機給大家看看結果。他們這個三個軸的角度是根據東北天座標系來定義。如下圖所示。大致思路和大家說一下簡答分成兩個部分串列埠程式編寫和資料處理 現在jy901是通過串列埠...