关于COM串口问题。新手求教

leaking1988 2011-03-10 01:31:03
请问COM里多长时间取一次串口数据是怎么设定的。
如果取回来的是一串数据,包含2个数据。怎么让它分别存入2个位置。
...全文
92 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jonslover 2011-03-22
  • 打赏
  • 举报
回复
数据速率是通过设定BAUTRATE , 接收和发送数据的多少是通过设定接收缓冲区和发送缓冲区的大小定,可以使用查询接收缓冲区函数获得接收数据的相关信息
dongfangbuba 2011-03-18
  • 打赏
  • 举报
回复
那啥,串口数据到了,就去取,取出的不管是字符串还是16进制还是什么乱七八糟七大姑八大姨的,根绝协议解析出来就成了。
lixiaopportunity 2011-03-10
  • 打赏
  • 举报
回复
可以用串口控件,根据波特率,自动设置串口数据读取时间。
接受的数据可以放在一个数组里面,定时更新数组。
-小蕾- 2011-03-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 leaking1988 的回复:]
引用 5 楼 lizhibin11 的回复:
接收的时候就按照协议逐条接收再处理比较好,反正只要系统缓冲区没有溢出,你没有接收的那些字节就会一直保留,随时可以去读,读完后系统才自动清掉已读的.

那COM里多长时间取一次串口数据是怎么设定的?还是看ARM机那边多久传一次数据过来?时间在ARM机那边设置的吧?
[/Quote]
一般来说是循环等待着的,当有数据的时候就读取,我以前做的时候,其实就是像楼上所说的,你先要清楚传输过来的数据格式,比如多少个字节之类的,然后你才能去读取,然后解析。。。
lizhibin11 2011-03-10
  • 打赏
  • 举报
回复
一直在循环中读取就行,是阻塞的.
leaking1988 2011-03-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lizhibin11 的回复:]
接收的时候就按照协议逐条接收再处理比较好,反正只要系统缓冲区没有溢出,你没有接收的那些字节就会一直保留,随时可以去读,读完后系统才自动清掉已读的.
[/Quote]
那COM里多长时间取一次串口数据是怎么设定的?还是看ARM机那边多久传一次数据过来?时间在ARM机那边设置的吧?
lizhibin11 2011-03-10
  • 打赏
  • 举报
回复
接收的时候就按照协议逐条接收再处理比较好,反正只要系统缓冲区没有溢出,你没有接收的那些字节就会一直保留,随时可以去读,读完后系统才自动清掉已读的.
leaking1988 2011-03-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lizhibin11 的回复:]
我举个例子,比如设备发给pc的,就是每次固定八个字节,在已经知道了这个协议的情况下,接收时就可以八个一条来收。或者设备每条数据都以\r结尾,那么接收时就可以以一行为一条。你要先了解设备传送的数据是那些格式或者内容。
[/Quote]
我大致知道你说的意思。协定是自己规定的吧?
那我想问下,如果每次都是同时接受2个数据,是一次当一条收了再处理。还是接受的时候就分成2行,变成2条来处理
lizhibin11 2011-03-10
  • 打赏
  • 举报
回复
我举个例子,比如设备发给pc的,就是每次固定八个字节,在已经知道了这个协议的情况下,接收时就可以八个一条来收。或者设备每条数据都以\r结尾,那么接收时就可以以一行为一条。你要先了解设备传送的数据是那些格式或者内容。
leaking1988 2011-03-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lizhibin11 的回复:]
先清楚pc与设备之间传输的数据格式和协议,才能知道怎么解析数据。
[/Quote]
协议是编程里可以设定的还是要在ARM机那边设定先的呢?
lizhibin11 2011-03-10
  • 打赏
  • 举报
回复
先清楚pc与设备之间传输的数据格式和协议,才能知道怎么解析数据。

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧