我用的是stm32f103rct6,用串口3以7个数据位、偶校验的方式通讯,发送可以实现,但是接收的时候无法自动去除校验位,比如我发送52 30 31 0d几个数,串口自动加上校验位发送出去的是d2 30 b1 8d;但是当接收到d2 30 b1 8d时,为什么不能自动去掉校验位,输出52 30 31 0d呢?难道要我写段程序逐字节去处理吗?
“发送可以实现”---请问你的接收方是什么?如果是PC,PC替你完成了。所以你用STM32去接收时要用软件去除最高位:
a= USART_ReceiveData(USART1) & 0x80;
stm32f103rct6的串口是双工工作方式,就是发送完数据后就接收数据,发送和接收的数据都是偶校验的,我是说我设置了偶校验后发送时串口能自动添加校验位后发送,但是串口在接收状态收到数据后却不能自动去除校验位。2楼的用软件去除最高位的方法当然可以,却无法判断接收到的字节校验是否正确。