com口读取问题

InitialJ 2009-07-30 08:29:52
如果传送过来的数据是11位,第一位开始位,后面8位数据,第10位标识位(不让它作为奇偶校验位),第11位停止位。
如何读第10位?
...全文
98 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
job82824 2009-07-31
  • 打赏
  • 举报
回复
不是一般的烧录单片机的平台都有查看寄存器当中每位数据的功能吗?你在那个烧录软件当中找到相应寄存器的数据位地址,打开它们,然后查看下它们的数值(16进制的),在对比下传过来的数据不就知道了?何必加什么校验位呢?

如果你不太会的话,那就用下位机程序将寄存器的该地址值用代码强制设定为0xFF00,这样对比下上位机接收到的数据就ok了
InitialJ 2009-07-31
  • 打赏
  • 举报
回复
没有别的办法了吗?
Ghost90 2009-07-31
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 initialj 的回复:]
如果我将ByteSize设置成9.无奇偶校验,这样的话该怎么接收?
[/Quote]
不能设为9 最大为8

可以把ByteSize设为5 每次传半个字节 最后1位是你要的状态位,一个字节分2次发送。
别的方法就不知道了
socoola 2009-07-30
  • 打赏
  • 举报
回复
在windows上,你只能读取到数据,其他的都是由串口本身处理掉了。
像你的情况,不如每次传递3个字节,第一个字节用来标示开始,第二个字节是高位,第三个字节是低位。
InitialJ 2009-07-30
  • 打赏
  • 举报
回复
如果我将ByteSize设置成9.无奇偶校验,这样的话该怎么接收?
InitialJ 2009-07-30
  • 打赏
  • 举报
回复
具体的情况是这样的
要读取一个IC的寄存器,是16位的,但是此IC只有I2C接口,所以我们通过单片机通过I2C读取这个寄存器的数据,然后再通过com口传给PC,但是每次通过com口穿过来的是一个BYTE,所以无法知道此BYTE是寄存器中的高位还是低位,所以我们又在BYTE后加入了一个标识位,来标识是高位还是低位,如果API无法读取的话。能不能找到方法,直接读取PC端UART的寄存器,之后的操作可以自己来实现。
Ghost90 2009-07-30
  • 打赏
  • 举报
回复
读不到第10,只能读到8位数据位。
起使位、奇偶位、停止位都是读不到的
不知道你读这些位要干啥
huofen2005 2009-07-30
  • 打赏
  • 举报
回复
掩码 + 移位

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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