GD32 串口接受异常的几个原因

前面我们介绍过GD32 485发送时出现异常的最常见原因,有小伙伴反馈想要知道GD32 串口接受异常的可能原因,今天我们就来安排。

一、波特率异常导致收发出错

我们知道,串口是异步通讯接口,通讯双方或者多方都需要工作在相同波特率下,如果波特率不对,则发送和接收都会异常。通常引起波特率异常的原因有以下几种:

  1. 外部晶振频率设置错误

GD32 固件库中,波特率的运算是需要去获取挂载这个串口的内部总线的频率

而获取总线频率的的函数中需要用到HXTAL_VALUE这个值,即外部晶振的实际频率。

GD32库中这个值默认是8M或25M,而有的小伙伴在用其他频率的晶振时,虽然根据实际频率修改了配置主频的函数,但没将HXTAL_VALUE这个值修改为实际值,就会导致配置出来的波特率和预想不符,从而导致波特率异常。

  1. 晶振频偏

如果外部和内部晶振出现频偏,也会导致波特率频偏,这个很好理解,那么频偏多少会出现异常呢?根据实际测试和经验,晶振出现2%的频偏,就会导致串口异常。如果使用的外部晶振,可以直接测量晶振的波形:

如果是用的内部晶振,可以通过PA8口输出内部晶振频率,再测量PA8口波形即可(如何使用PA8输出内部频率,后面也会出教程哦)。至于为什么超过2%就出现异常,小伙伴们可以自己思考下哦。

二、接受过载

当串口接收线上数据量较大,而软件由于一些原因比如需要处理更高优先级的任务时,就可能会发生数据寄存器和移位寄存器中的数据都还没有被读走的情况下,又接收到新的数据,此时串口发生接收过载。

串口状态寄存器中的ORERR位将会置“1”,新的数据也将不会被接收到MCU中,从而导致数据丢失。

该问题的解决办法:

(1)使用中断进行数据接收,且适当提高中断优先级,同时需要打开接收过载中断,当发送过载时表示有数据丢失,可以对这一帧数据做算法处理;

(2)使用DMA接受数据,因为DMA不需要CPU参与,故一般情况下不会出现接收过载。

三、接收的数据起始位不标准

我们知道,串口每个byte的数据都有一个起始位,占一个bit时间,如果由于一些原因导致对方发过来的数据起始位过短的话,MCU就无法识别到这个起始位,从而这个byte的数据就不会被接收。小编就见过因为加了隔离芯片导致起始位变短,而传输的第一个数据bit位变长,虽然这个byte的数据时间是符合波特率的,但由于起始位不标准,也将导致接收异常。

实际上这个问题只会在GD部分芯片上出现,比如GD32F405/407/450,这是因为这几颗芯片串口起始位的检测比较严苛,而GD32有的型号做了起始位检测优化,比如GD32F30x、F425/427/470系列,就不会出现这样的问题。

四、干扰

串口的发送和接收,实际上就是一串波形,当波形收到干扰时,也会出现通信异常。这种情况下,小伙伴们就要去通过硬件的方式去过滤到干扰源就可以解决问题了。

以上,就是小编总结的几点串口接收异常的可能原因,小伙伴们有知道其他原因的,欢迎在评论区交流哦。

更多GD32 MCU相关咨询:https://www.gd32bbs.com/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/33152.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JS逆向百例】某点数据逆向分析,多方法详解

前言 最近收到粉丝的私信,其在逆向某个站点时遇到了些问题,在查阅资料未果后,来询问K哥,K哥一向会尽力满足粉丝的需求。网上大多数分析该站点的教程已经不再适用,本文K哥将提供 3 种解决方案,对于 webpack…

【unity小技巧】unity事件系统创建通用的对象交互的功能

文章目录 前言实现1. **InteractEvent 类**:2. **Interact 类**:3. **Player 类**:4. **Chest 类**: 工作流程说明:开单个箱子按钮触发打开很多箱子拾取物品(传参)参考完结 前言 游戏开发过程中…

ONLYOFFICE8.1版本桌面编辑器测评

OO官方链接点这里:ONLYOFFICE 文档 8.1 现已发布:功能全面的 PDF 编辑器、幻灯片版式、优化电子表格的协作等等 | ONLYOFFICE 博客 一、界面与用户体验 整体布局和设计的美观性、易用性: ONLYOFFICE 8.1 版本的桌面编辑器展现出了令人眼前一亮…

深入解析H100、A100和4090三款显卡的性能对比与应用场景

在当今的计算机领域,显卡的性能对于人工智能、深度学习和高性能计算等领域的影响至关重要。本文将深入解析NVIDIA最新的三款显卡:H100、A100和4090,比较它们的性能参数,并探讨各自的应用场景。 一、显卡性能参数对比 参数H100A1…

磁芯电感 晶谷电容可镀银浆用玻璃 晶谷电阻银浆料低温玻璃粉(耐强酸)

晶谷电阻银浆料低温玻璃粉(耐强酸)软化点在490至580度之间,线膨胀系数为(75至95)10-7,粒径为1.5至3微米(可按要求订做),外观颜色为白色超细粉末,烧后颜色无色…

新能源汽车 LabCar 测试系统方案(-)

什么是LabCar测试 LabCar测试目标是进行整车黄板台架功能测试,用于整车开发和测试阶段,满足设计人员和测试人员的试验需求,以验证整车性能,减少开发工作量。系统主要用于测试静态及动态工况下的纯电动汽车的各项功能实现情况。 …

设计模式原则——里氏替换原则

设计模式原则 设计模式示例代码库地址: https://gitee.com/Jasonpupil/designPatterns 里氏替换原则 继承必须确保父类所拥有的性质在子类中依然成立 与开闭原则不同的是开闭原则可以改变父类原有的功能,里氏替换原则不能修改父类的原有的性质&#…

在线装修管理系统的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,装修队管理,用户管理,装修管理,基础数据管理,论坛管理 前台账户功能包括:系统首页,个人中心,…

197.回溯算法:复原IP地址(力扣)

代码解决 class Solution { public:// 存储最终结果的向量vector<string> result;// 判断字符串s从start到end范围内的子串是否是一个合法的IP地址段bool isValid(const string& s, int start, int end){if (start > end) {return false; // 起始位置大于结束位置…

vue项目集成CanvasEditor实现Word在线编辑器

CanvasEditor实现Word在线编辑器 官网文档&#xff1a;https://hufe.club/canvas-editor-docs/guide/schema.html 源码地址&#xff1a;https://github.com/Hufe921/canvas-editor 前提声明&#xff1a; 由于CanvasEditor目前不支持vue、react 等框架开箱即用版&#xff0c;所以…

开源seata的分布式事务解决方案-XA、AT、TCC、SAGA哪个模式好

分布式事务是分布式系统中非常重要的一部分。假设一个用户购买商品的业务逻辑&#xff0c;系统有3个微服务组成&#xff0c;分别是订单服务、账户服务、库存服务&#xff0c;用户在提交订单后会从用户账户余额中扣款&#xff0c;同时扣减库存数量。在这样的场景下扣款和减库存需…

IDEA中 pom.xml 设置自动提示

IDEA中 pom.xml 自动提示 IDEA中 pom.xml 自动提示设置如下&#xff1a; file–>Settings–>Build,Execution…–>Build Tools–>Maven–>Repositories 会看到类似表格的画面&#xff0c;内容是你的maven地址&#xff0c;选中后&#xff0c;右边有个Update的按…

开放式耳机哪种好用又实用?开放式耳机必入品牌推荐,内行人分享

随着数码技术的不断推出各种各样的新产品&#xff0c;开放式耳机已经逐渐成为有份音乐发烧友的选择&#xff0c;这类耳机从早期的简单音质发展至今日的高解析度&#xff0c;其技术进步&#xff0c;也吸引了一大批开放式耳机的爱好者&#xff0c;开放式耳机以其开放式的设计&…

Springboot3.3 整合ClickHouse注意事项

Spring 3 整合 ClickHouse 的方法可以通过JDBC来实现。首先&#xff0c;确保你有Spring 3和ClickHouse的JDBC驱动。然后&#xff0c;在Spring的配置文件中配置数据源和模板。 Maven依赖示例&#xff1a; <!-- https://mvnrepository.com/artifact/com.clickhouse/clickhou…

对称/非对称加密

对称加密和非对称加密是两种主要的加密方式&#xff0c;用于保护数据的机密性和完整性。它们在密钥的使用和管理上有着显著的不同。 对称加密 原理 对称加密&#xff08;Symmetric Encryption&#xff09;使用相同的密钥进行加密和解密。这意味着发送方和接收方必须共享相同…

2024中国第三方算力中心服务商发展研究报告

来源&#xff1a;科智咨询 近期历史回顾&#xff1a;《江苏省绿色建筑评价标识实施细则》(1).pdf 《江苏省绿色建筑评价标识实施细则》.pdf 【计算工具】钢铁企业碳排放各工序数据收集表.xlsx 【深度报告】钢铁产品碳足迹核算及报告指南.pdf 【专家PPT】宝钢低碳钢铁技术策划及…

巧用newSingleThreadExecutor让异步任务顺序跑

背景 Flume 是 Cloudera 提供的一个高可用的&#xff0c;高可靠的&#xff0c;分布式的海量日志采集、聚合和传输的系统 。一个用来控制 Flume 采集任务的 Web 应用&#xff0c;需要对任务进行管理&#xff0c;主要操作「启动、停止、新建、编辑、删除」&#xff0c;本质就是对…

头歌——机器、深度学习——手写体识别

第1关&#xff1a;神经网络基本概念 任务描述 本关任务&#xff1a;根据本节课所学知识完成本关所设置的选择题。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a;1.神经网络基本概念。 神经网络基本概念 神经网络由输入层、隐藏层、输出层组成&#xff1b;…

【华为OD机试】最左侧冗余覆盖子串(C++ Java JavaScript Python )

题目 题目描述 给定两个字符串s1和s2和正整数K,其中s1长度为n1,s2长度为n2,在s2中选一个子串,满足: 该子串长度为n1+k该子串中包含s1中全部字母,该子串每个字母出现次数不小于s1中对应的字母,我们称s2以长度k冗余覆盖s1,给定s1,s2,k,求最左侧的s2以长度k冗余覆盖s1的…

逆向学习网络篇:心跳包与TCP服务器

本节课在线学习视频&#xff08;网盘地址&#xff0c;保存后即可免费观看&#xff09;&#xff1a; ​​https://pan.quark.cn/s/31c74a06f8db​​ 在网络通信中&#xff0c;心跳包是一种重要的机制&#xff0c;用于维持客户端与服务器之间的连接状态。本文将深入探讨心跳包的…