stm32串口接收的校验问题

freedom2010   2010-6-10 15:01 楼主
                                 我用的是stm32f103rct6,用串口3以7个数据位、偶校验的方式通讯,发送可以实现,但是接收的时候无法自动去除校验位,比如我发送52 30 31 0d几个数,串口自动加上校验位发送出去的是d2 30 b1 8d;但是当接收到d2 30 b1 8d时,为什么不能自动去掉校验位,输出52 30 31 0d呢?难道要我写段程序逐字节去处理吗?

回复评论 (3)

“发送可以实现”---请问你的接收方是什么?如果是PC,PC替你完成了。所以你用STM32去接收时要用软件去除最高位:
a= USART_ReceiveData(USART1) & 0x80;
点赞  2010-6-10 16:38
                                 stm32f103rct6的串口是双工工作方式,就是发送完数据后就接收数据,发送和接收的数据都是偶校验的,我是说我设置了偶校验后发送时串口能自动添加校验位后发送,但是串口在接收状态收到数据后却不能自动去除校验位。2楼的用软件去除最高位的方法当然可以,却无法判断接收到的字节校验是否正确。
点赞  2010-6-20 10:55
                                 你是不是将RX与TX短接了?
点赞  2010-6-20 17:08
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复