matlab實用小程序段 —— 串口發送和讀取


       sr3 = serial('COM3');       % 使用默認設置創建串口sr3

       fopen(sr3);                 %打開串口

       fprintf(sr3,'xxx');         % 給串口寫入數據

       str = fscanf(sr3)           %讀取串口數據(無分號,可在Matlab工作區實時查看)

       fclose(sr3);                %關閉串口

       delete(sr3);

       clear sr3;
 

 

串口發送數據

s = serial('COM9');

 

   Serial Port Object : Serial-COM9

   Communication Settings 
      Port:               COM9
      BaudRate:           9600
      Terminator:         'LF'  %串口觸發字符“換行符”(缺省符)   串口觸發字符“回車符”(CR)

   Communication State 
      Status:             closed
      RecordStatus:       off

   Read/Write State  
      TransferStatus:     idle
      BytesAvailable:     0
      ValuesReceived:     0
      ValuesSent:         0

 

fopen(s)

s.ReadAsyncMode = 'continuous';  %連續接收,缺省模式

fprintf(s,'MR YANG')

fclose(s)

delete(s);

clear s;

串口連續接收數據(不好用)

>>  s=serial('COM9')

   Serial Port Object : Serial-COM9

   Communication Settings 
      Port:               COM9
      BaudRate:           9600
      Terminator:         'LF'

   Communication State 
      Status:             closed
      RecordStatus:       off

   Read/Write State  
      TransferStatus:     idle
      BytesAvailable:     0
      ValuesReceived:     0
      ValuesSent:         0
 
>>  fopen(s);
>> s.ReadAsyncMode = 'continuous';
>> while(1)
    if(s.BytesAvailable)
        out = fscanf(s)
    end
end

(或者str = fscanf(sr3)  讀取數據)

注意:當進入死循環後,用快捷鍵Ctrl+C強行中斷

 

out =

yang 123

串口中斷接收數據:詳細參見https://blog.csdn.net/c_ycy/article/details/53883793


    注意,函數文件的開頭,應該出現在M文件中,而不是在運行窗口輸入的

   只有當.m文件不busy時才能對變量進行操作

 

 


 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章