在安富莱的FreeRTOS的V4开发板的例程里,将串口配置为校验位为Odd,再将串口调试助手同步为Odd,串口助手上收到的打印数据为乱码。Even也一样是乱码。只能将此校验位设置为None,才可以正常打印数据。
调试了多个工程文件,都是一样的现象,不清楚该怎么解决了?
/* 第4步: 配置串口硬件参数 */
USART_InitStructure.USART_BaudRate = UART1_BAUD; /* 波特率 */
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No ;
//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(USART1, &USART_InitStructure);
Answer:在STM32中,串口配置分以下三种情况:① 在串口调试助手里设置数据为8检验位为None,程序代码数据位为8,校验位为None;② 在串口调试助手里必须将数据位设置为8,检验位为Even或Odd时,必须将程序代码数据位改为9而检验位一致,才保证正常输出显示。
欢迎大家关注我的公众号: