Crotex A8 内核linux4.1.18
使用RS232串行通信,单片机发送9位数据位,最高位1表示地址,最高位0表示数据
A8核心板接收数据,当前只能接收正确接收到最高位为0表示数据的字节,最高位为1表示地址的字节接收结果为00
问:如何能正确接收到单片机发送过来的数据
引用: angel_CN 发表于 2022-3-28 22:34 建议读Datasheet,先弄懂RS232的协议,再根据协议设计需要的时序即可
您好,有阅读Datasheet文档,没有找到对应的解决方案
引用: Verifone 发表于 2022-3-29 10:57 这个标准的双工通讯协议,按协议写程序就好了啊。
您好,我们A8核心板接收数据需要对最高位(即校验位)进行判断,最高位D8为1时D0-D7表示地址;最高位D8=0时,D0-D7表示数据;我现在接收单片机发送数据时,D8=1的字节会报校验错误
引用: chunyang 发表于 2022-3-30 15:55 楼主所及已经是协议的范畴,需要软件判断,232本身无所谓什么高位是啥,来啥接啥,如何解析是另外一回事。 ...
谢谢您的回复,现在就是软件方面的问题,硬件是通的
现在就是我串口参数c_cflag奇偶校验设为最高位为0的校验,然后想要在接收最高位为1的字节时,忽略校验错误PE,将RHR寄存器内容读取出来
引用: 别叫你哥许鲜森 发表于 2022-4-1 15:44 谢谢您的回复,现在就是软件方面的问题,硬件是通的 现在就是我串口参数c_cflag奇偶校验设为最高位为0 ...
那你只能用软件实现虚拟串口,硬件串口有模式之分,9位奇偶校验模式不能忽略校验错误。而你这样编制协议也很不规范,应该用命令字节解析功能,用位来表达,严重缺乏通讯可靠性。