查看: 141|回复: 5|关注: 0

[未答复] matlab 萌新求助 正在做串口读取的gui 串口通信中关于BytesAvailableFcn 的问题

[复制链接]

新手

9 麦片

财富积分


050


1

主题

7

帖子

1

最佳答案
发表于 2019-6-12 15:53:55 | 显示全部楼层 |阅读模式
本人第一次使用gui功能 第一次写串口通信(stm32串口通信uart)不知为何就显示这样的错误 捕获.JPG
我有点不明白在什么时候会调用这个自己定义的receivecallback函数 按照我的理解是接收到x个字节之后(x在BytesAvailableFcnCount定义)然后中断调用自定义函数receivecallback一段代码如下
  1. function son_Callback(hObject, eventdata, handles)

  2. global COM;
  3. global baud;
复制代码
son是打开串口的按键的tag  soff是关闭串口的按键的tag 我想读取两个字节然后再文本框里打出这两个整数 我知道代码里好多错 只怪我第一次用很多不熟悉 就按照感觉去写 还望大佬们指点指点:'(:'(:'(   波特率115200,,,,

新手

9 麦片

财富积分


050


1

主题

7

帖子

1

最佳答案
 楼主| 发表于 2019-6-12 16:21:50 | 显示全部楼层
本帖最后由 GGGGundam桑 于 2019-6-12 18:29 编辑
  1. function son_Callback(hObject, eventdata, handles)

  2. global COM;
  3. global baud;
  4. global s;
  5. delete(instrfindall);
  6. s = serial(COM);
  7. set(s,'Parity','none','Baudrate',baud,'Databits',8,'Stopbits',1,'InputBufferSize',1024,'FlowControl','none'); %??????????
  8. s.ReadAsyncMode = 'continuous';
  9. s.BytesAvailableFcnMode = 'byte';
  10. s.BytesAvailableFcnCount = 2; %测试时改为1
  11. s.BytesAvailableFcn = @ReceiveCallBack;
  12. s.Timeout = 10;
  13. try
  14.     fopen(s);
  15. catch err;
  16.     if (strcmp(err.identifier,'MATLAB:serial:fopen:opfailed'))
  17.         msgbox('Open COMport fail');
  18.     end
  19. end

  20. function ReceiveCallBack(obj,event)
  21. global data;
  22. global delay_s;
复制代码

新手

9 麦片

财富积分


050


1

主题

7

帖子

1

最佳答案
 楼主| 发表于 2019-6-12 16:10:42 | 显示全部楼层
本帖最后由 GGGGundam桑 于 2019-6-12 16:24 编辑

补了一遍代码  救命:'(:'(:'(:'(:'(

新手

9 麦片

财富积分


050


1

主题

7

帖子

1

最佳答案
 楼主| 发表于 2019-6-12 18:10:35 | 显示全部楼层
追加问题   已经可以读出两个数据了 但是读取的数据完全不对 从单片机发到串口的是数字1和2  但接受到的数据就五花八门  例如(32 50 73 20 160...)

而且还报错
未定义变量 "handles" 或类 "handles.edit1"。

出错 battery_display>ReceiveCallBack (line 108)
set(handles.edit1,'String',data(1));


出错 instrcb (line 36)
        feval(val{1}, obj, eventStruct, val{2:end});

警告: The BytesAvailableFcn is being disabled. To enable the callback property
either connect to the hardware with FOPEN or set the BytesAvailableFcn property.

新手

9 麦片

财富积分


050


1

主题

7

帖子

1

最佳答案
 楼主| 发表于 2019-6-13 09:07:17 | 显示全部楼层
求救 调试了好长时间调试不出来 报错无法解决  读取的data数据也是不正确

新手

9 麦片

财富积分


050


1

主题

7

帖子

1

最佳答案
 楼主| 发表于 2019-6-14 10:45:52 | 显示全部楼层
已解决。。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表