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

news2024/11/18 9:49:38

前面我们介绍过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.coloradmin.cn/o/1857094.html

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

相关文章

C++必修:模版的入门到实践

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C学习 贝蒂的主页:Betty’s blog 1. 泛型编程 首先让我们来思考一个问题,如何实现一个交换函数&#x…

(超详细)YOLOV7改进-Soft-NMS(支持多种IoU变种选择)

1.在until/general.py文件最后加上下面代码 2.在general.py里面找到这代码,修改这两个地方 3.之后直接运行即可

对撞指针技巧

对撞指针技巧 我们以LeetCode的一道题目来讲解一下对撞指针; LeetCode第27题移除元素,链接如下: https://leetcode.cn/problems/remove-element 如果使用快慢指针 如果使用快慢指针,将会有大量的后面元素赋值给前面元素的操作…

面向二级及二级以下医院的云HIS系统源码,涵盖患者、费用、医嘱、电子病历等核心业务功能。

云HIS系统源码,二级医院信息管理系统源码,电子病历系统 云HIS系统,采用云计算、互(物)联网、大数据、人工智能等现代信息技术,融合医保、医疗、医药全方位的管理和服务,为各类中小型医疗机构,包括二级及二…

【Python机器学习实战】 | 基于K近邻算法和一般线性回归算法对电视剧播放数据进行回归预测

🎩 欢迎来到技术探索的奇幻世界👨‍💻 📜 个人主页:一伦明悦-CSDN博客 ✍🏻 作者简介: C软件开发、Python机器学习爱好者 🗣️ 互动与支持:💬评论 &…

unity-特效-雷达扫描效果

使用后处理方式制作 using System; using System.Collections; using System.Collections.Generic; using UnityEngine;public class GlobalScanEffect : MonoBehaviour {public float startScanRange 0;public float maxScanRange 20;public float scanWidth 3;public flo…

数据库期末复习知识点

A卷 1. 选择题(30) 2. 判断范式(10) 判断到第三范式 3. 程序填空(20) 4. 分析填空(15) 5. 写SQL(25) 5一题 恶性 B卷 1. 单选(30) 2. 填空 (20) 3. 程序填空(20) 4. 写SQL(30) 知识点 第一章 数据库管理系统(DBMS) 主要功能 数据定义功能 (DDL, 数据定义语言, …

第二证券股市知识:小白炒股是做长线好还是短线好?

关于小白来说,挑选炒长线比炒短线要好一些,其间原因如下: ​ 1、对出资者技能要求相对较低 短线出资,需要出资者对个股的走势掌握比较精确,才干通过高抛低吸赚取必定的差价,否则很容易让散户卖飞个股&am…

快速记忆成百上千个账号密码

在日常生活中,我们不仅需要记忆6位数字的银行卡密码,还需要记忆各式各样网站和应用的账号密码,可能我们自己也不记得曾经注册过多少个账号。账号和密码如此繁多,管理这些账号和密码,也是一个让人头疼的问题。 最原始的…

前两天上线了一个小功能,差点把我们项目搞崩溃

项目场景: 最近一直在迭代公司的系统,业务提出需要增加一个消息通知的功能,对接完需求之后,我们就 开始热火朝天的编码、测试、上线, 就是右上角这个小图标,为了提升用户体验,我们采用每隔20S…

有效利用MRP能为中小企业带来什么?

在离散制造企业,主流的生产模式主要为面向订单生产和面向库存生产(又称为预测生产),在中小企业中,一般为面向订单生产,也有部分面向库存和面向订单混合的生产方式(以面向订单为主,面…

windows系统docker镜像导出

docker镜像导入导出(windows)_windowdocker下载镜像导出-CSDN博客https://blog.csdn.net/qq_22211217/article/details/93936363

网页设计软件Bootstrap Studio6.7.1

Bootstrap Studio是一个适用于Windows的程序,允许您使用流行的fre***orca Bootstrap创建和原型网站。您可以将现成的组件拖动到工作区并直观地自定义它们。该程序生成干净和语义的PDF、CSS和JS代码,所有Web浏览器都支持这些代码。 Bootstrap Studio有一个漂亮而强大的界面,它…

[个人感悟] MySQL应该考察哪些问题?

前言 数据存储一直是软件开发中必不可少的一环, 从早期的文件存储txt, Excel, Doc, Access, 以及关系数据库时代的MySQL,SQL Server, Oracle, DB2, 乃至最近的大数据时代f非关系型数据库:Hadoop, HBase, MongoDB. 此外还有顺序型数据库InfluxDB, 图数据库Neo4J, 分布式数据库T…

linux系统指令查漏补缺

目录 一.磁盘操作 二.lvm 三.top 4.nohup 一.磁盘操作 1. lsblk -f 显示磁盘和它的相关内容 2.tuen2fs -c -1 /dev/sdx 关闭某个磁盘的自检 3.修改配置,使文件系统不要开机自检 cat /etc/fstab 全0表示开机不自检 全1表示开机自检 同时在这个文件中可添加…

计算机网络面试HTTP篇二

HTTP/1.1 如何优化? 问你一句:「你知道 HTTP/1.1 该如何优化吗?」 我们可以从下面这三种优化思路来优化 HTTP/1.1 协议: 尽量避免发送 HTTP 请求;在需要发送 HTTP 请求时,考虑如何减少请求次数&#xff…

Nature推荐的三种ChatGPT论文写作指令

1. 润色学术论文 ChatGPT学术润色指令: “I’m writing a paper on [topic]for a leading [discipline] academic journal. WhatItried to say in the following section is [specific point]. Please rephrase itfor clarity, coherence and conciseness, ensuri…

C语言---数据结构(1)--时间复杂和空间复杂度计算

1.什么是时间复杂度和空间复杂度 1.1算法效率 算法效率分为时间效率和空间效率 时间效率被称为时间复杂度,而空间效率被称作空间复杂度。 时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间,在计算…

麦肯锡:量子传感究竟在何处可以发光发热

量子传感技术已经提供价值,潜在的应用案例可以塑造多个行业。有四种核心技术具有应用前景:固态自旋、中性原子、超导电路和离子阱,它们具有在广泛的物理属性上的传感能力,包括磁场、电场、旋转、温度、重力、时间和压力。选择哪种…

spring cloud Alibaba 整合 seata AT模式

准备工作: 1、MySQL正常安装并启动 2、nacos正常部署并启动 3、下载 Seata-1.4.2 源码包和 seata-server-1.4.2 服务端源码包(版本根据自己的需要选择,我这里选择1.4.2) 下载地址: Seata:https://gite…