本帖最后由 viphotman 于 2019-9-26 10:23 编辑
NUCLEO_G431RB测评 -UART
例子地址 STM32Cube_FW_G4_V1.0.0\Projects\NUCLEO-G431RB\Examples\UART\UART_Printf
上次用UART时,发现了个问题,就是打印单个"a"或是“1” 时,数据正确出来,
但是打印“12345”时,出来就乱了;会出HEX; 31 32 B3 B4 35; 每隔2个数据,会在数据的高8位变为1(0x33->0xB3);
后来,我打印"P"(0x50),单个数据也错;图如下
1 波形如下;,测试单个脉冲频率113.6K 约等115200,波特率没错;
2 串口打印如下 ,HEX是0XD0 (11010000),但正确的应该是(0x50 (01010000)),高8位多了个1;
3 我想到是不是数据位数据有错,是7bit,不是8bit;
修改串口工具的数据位数后,发的数据正常了;
4 返回代码看,
hlpuart1.Init.WordLength = UART_WORDLENGTH_8B; 是写的8bit;
#define UART_WORDLENGTH_8B 0x00000000U
static void MX_LPUART1_UART_Init(void)
{
/* USER CODE BEGIN LPUART1_Init 0 */
/* USER CODE END LPUART1_Init 0 */
/* USER CODE BEGIN LPUART1_Init 1 */
/* USER CODE END LPUART1_Init 1 */
hlpuart1.Instance = LPUART1;
hlpuart1.Init.BaudRate = 115200;
hlpuart1.Init.WordLength = UART_WORDLENGTH_8B;
hlpuart1.Init.StopBits = UART_STOPBITS_1;
看规格书里描述;8bit 是00,也没有错;
不知道其它测评的网友是个什么情况;
先发出来请教下;