谢谢大家的解答,最后的问题是按照网上搜到的别人的解决方案:STM32的stm32f4xx.h文件里时钟配置120行将HSE_Value 25000000改为8000000,就可以解决,
不过问题又来了,板子上的外置晶振是25M的啊?不知道为什么改成8M就可以了,而且前一段时间没改用的也是好好的,怎么突然就要改了呢?而且在图示的这个地方好像并不起作用。。。
1、首先检查一下 波特率,波特率 数据位 校验位 不匹配,即网络转串口设备与您的串口设备波特率不匹配,设置成一致即可。
2、硬件原因,注意TTL RS232 RS485这几种电平形式是不同的,不能直接连接,需要用232芯片或者485芯片转发,
客户最常患的一个错误是将TTL电平直接接到计算机上,肯定会乱码,计算机是RS232电平。另外硬件设计不当,
有干扰也可能会导致通讯不正常。仔细检查硬件即可。
波特率 起始位数 停止位数 奇偶校验 这几个设置一致就可以。
因为usart通讯是异步串行通讯,空闲时高电平。起始位是由高变低,然后数据采样识别就靠波特率了。
只有完全一致才可以约定收发数据。
1.波特率
2.数据处理问题