各位大神好
我自己在做STM32F103VET6串口通信的时候,发现几个问题启用奇偶校验位后,数据通信有点困惑
我的初始化代码如下:
USART_InitStructure.USART_BaudRate = 9600; //通信波特率为9600
Comm.Flag = RX_WAIT;
USART_InitStructure.USART_WordLength = USART_WordLength_9b; //数据位9
USART_InitStructure.USART_StopBits = USART_StopBits_1;//停止位1
USART_InitStructure.USART_Parity = USART_Parity_Odd ;//奇校验
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx|USART_Mode_Tx;
USART_Init(USART2, &USART_InitStructure);
USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);
USART_ClearFlag(USART2, USART_FLAG_TC);
USART_ITConfig(USART2,USART_IT_TC,ENABLE);
USART_Cmd(USART2, ENABLE);
在实际测试过程中发现设置为奇校验后,将计算机串口设置成奇偶校验都可以进行通信
好像校验位并没有产生实际的校验作用
实际的寄存器中我也跟过,对奇偶校验位也有设置
我就是想搞清楚到底是什么地方的问题
谢谢 |