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时才能对变量进行操作

 

 


 

 

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