问题描述
开发板A的uart串口,用串口助手和电脑连接总是显示乱码:
最开始用U转串线连接板子和电脑——可能电平不匹配导致的乱码;
之后换了两块USB转TTL电平模块,串口助手都是乱码;
我怀疑是程序的问题
发送0x55、0xff到uart,用示波器测试都是正常的信号;
难道我拿到的USB转TTL模块都有问题?????
解决思路(感谢xy)
用开发板A作为发送端,用开发板B(提前测验过,可以正常使用)作为接收端,用uart通信,如果能正常通信,说明A的uart没有问题,两个U转T模块都有问题。如果B收集不到,或者说收集到的信号是错乱的,那就说明板子A上有问题(不论UART还是程序),USB转TTL模块可能没有问题。
(其实用示波器检测电平信号正常,基本上可以说明A的uart可以正常通信)。
具体做法
接线图:

测试程序语句:
板子A中的测试语句:
···
uint8_t a[256];
for( int i =0; i <= 255 ;i++)
{
a[i] = i ;
}
while (1)
{
HAL_UART_Transmit(&huart3, a, 256, 0xffff);
HAL_Delay(1000);
}
···
板子B中的测试语句:
···
static uint8_t buff[256];
HAL_UART_Receive_IT(&huart1, buff, 256);//中断接收
HAL_Delay(10);
···
对应的程序分别烧入两个板子,debug看B中接收

开发板A通过串口助手与电脑通信时出现乱码,尝试更换U转串线模块和USB转TTL模块无效。通过开发板A、B之间的UART通信验证,发现A板发送的数据在B板上能正常接收,证明UART及USB转TTL模块可能无问题,乱码原因可能在于串口助手或连接线缆。

327

被折叠的 条评论
为什么被折叠?



