HalUARTWrite()函数输出一个参数,串口显示乱码输出
时间:10-02
整理:3721RD
点击:
串口输出一个参数,用HalUARTWrite这个函数,但输出显示是乱码,用十六进制显示输出,发送输出的是16进制的数据,但显示成十进制后就是乱码了。 但用 LCD_WRITE_STRING_VALUE() 这个函数就能正常显示出数字来?什么原因?
uint8 data[3]={0};
data[0]=sec; data[1]=min;
data[2]=hour;
HalUARTWrite(HAL_UART_PORT_0,data,3);
LCD_WRITE_STRING_VALUE( "sec:", sec, 10, HAL_LCD_LINE_1 );
LCD_WRITE_STRING_VALUE( "min:", min, 10, HAL_LCD_LINE_1 );
LCD_WRITE_STRING_VALUE( "hour:", hour, 10, HAL_LCD_LINE_1 );
请问显示乱码是指接线到PC上使用串口调试的工具显示的吗?
如果是,要检查一下串口波特率的配置是否正确
如果不是,是什么地方显示的呢?
算下波特率吧,用示波器量一下就更直接了。
WBJ,你好,是PC显示的。
但估计不是串口波特率的问题,如果这个设置有问题的话, LCD_WRITE_STRING_VALUE这个也会显示乱码的,都是串口输出的。
LCD_WRITE_STRING_VALUE这个是把数值打到LCD上,LCD用的是SPI口
且这个SPI口和UART口肯定不是一个PIN
使用sprintf(data,"%u%u%u",sec,min,hour);转换再串口写。