关于uart串口接收端乱码问题

问题:在给gd32f303单片机封装串口驱动时,发现接收端乱码。

解决:经排查发现是系统时钟不准。经过调整内部时钟后成功解决问题。

注:异步通信协议uart依赖双方时钟的准确,任一方时钟不准都会导致乱码问题。

其他导致串口出问题的原因:

        1、分开的两台不同电源的设备间不共地

        2、两台设备波特率、停止位、检验位的设置不同

        3、设备没有供电

        4、波特率设置太高超过当前环境的信号线的传输极限

        5、程序中串口没有正确初始化

        6、同一引脚在代码不同地方初始化为不同功能,当程序执行时串口收发偶然受到干扰导致某些字节传送乱码

        7、某些用gpio口模拟串口的,芯片本身的io引脚翻转速率达不到,导致看似代码正常但示波器测量是一个尖峰,这种情况建议拉低波特率。

        8、传输线太长,偶然耦合了一些感应电压导致某些字节误码

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值