串口校验位只能设置为None,设置为Odd时会乱码?
在安富莱的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);
这个应该是你的测试环境有bug或者配置不对,看下是不是串口线不行,还是串口软件不行,还是你的板子不行,数据长度配置的多少,我现在手头没有V4板子了,帮你测试下V5的。
USART_InitStructure.USART_BaudRate = UART1_BAUD; /* 波特率 */
USART_InitStructure.USART_WordLength = USART_WordLength_9b;
USART_InitStructure.USART_StopBits = USART_StopBits_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(USART1, &USART_InitStructure);
你修改为USART_WordLength_9b应该可以解决,试试。
eric2013 发表于 2021-10-4 23:20
白工, H7-TOOL 功能越来越完善。对于串口打印,请问你现在是一直用 H7-TOOL 吗,还是继续在用 SecureCRT。 www2205290064 发表于 2021-10-5 06:54
白工, H7-TOOL 功能越来越完善。对于串口打印,请问你现在是一直用 H7-TOOL 吗,还是继续在用 SecureCRT ...
现在只用TOOL,从今年年初开启已经全面转战TOOL,当前所有教程制作的贴图也是全部是TOOL的了。 eric2013 发表于 2021-10-4 23:20
数据位数改为9后,问题解决了,谢谢白工啦
页:
[1]