主题:如何触发读事件?

  共有22290人关注过本帖    
Rite2009
1楼


如何触发读事件?  发帖心情 Post By:2009-10-25 15:42:00   [只看该作者]

我打开了几个串口,其中一个串口调用接收回调函数时,发现DataBuf[]里只有部分数据,也就是触发读事件不对。要如何设置?
也就是说我串口进来多少个字节触发读事件?

  单帖管理 | 引用 | 回复 回到顶部
Rite2009
2楼


  发帖心情 Post By:2009-10-25 16:43:00   [只看该作者]

我用从单片机控制AD采集,然后串口发送到模块,模块串口接收。我每次发送的数据为"AT+D=+1.235436+1.235411……",大概80个字节,可是到了接收回调函数里发现DataBuf[]里就有"AT+D=+1.",后面的没了,可是我设置断点后再循环一圈,DataBuf[]里就有两次发送的数据。我用的例子程序的串口类。怎么设置串口类中的数据触发事件?也就是说在接收到多少个字节或者什么标志字符,再触发接收事件?

  单帖管理 | 引用 | 回复 回到顶部
x10
3楼


  发帖心情 Post By:2009-10-25 18:03:00   [只看该作者]

串口驱动程序在收到8个字节后,就会发出RxEvent。客户的应用数据格式的解析是由应用程序来完成的。一般来讲,应用程序应当有以恶搞接收解析线程,负责处理来自串口的数据,并组成应用层的数据帧。这方面可参考http://www.emtronix.com/article/article2009326.html中有关接收DL645规约数据帧的处理方法。

  单帖管理 | 引用 | 回复 回到顶部
Rite2009
4楼


  发帖心情 Post By:2009-10-26 8:13:00   [只看该作者]

那8个字节就触发RxEvent事件,在触发事件后我并不做读处理,然后等到下一个事件触发,甚至下下一个事件触发,直到DataBuf[]中有我的全帧数据我再去读和处理DataBuf[],然后再清空DataBuf[]行不行?

  单帖管理 | 引用 | 回复 回到顶部
Rite2009
5楼


  发帖心情 Post By:2009-10-26 8:31:00   [只看该作者]

貌似解决了。我在接收回调函数里把接收的数据拼接起来,直到接收到我的每一次全部数据,再做相应处理。因为我的数据帧字节数确定,所以这样可以实现,不知道会不会出问题。

另外,我程序在编译运行的时候,偶尔会弹出一个信息对话框,说First-chance   exception   in   SiCh.exe:   0xC0000005:   Access   Violation. 
这是个什么问题?我已运行就到了汇编界面,然后找不到出问题的地方,貌似是哪个变量的问题。

  单帖管理 | 引用 | 回复 回到顶部
zhl
6楼


  发帖心情 Post By:2009-10-26 18:05:00   [只看该作者]

出现这个提示,应用程序中肯定有指针的问题,需要仔细查查看。

  单帖管理 | 引用 | 回复 回到顶部

返回首页

如何触发读事件?

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: