MCU单片机GPIO初始化该按什么顺序配置?为什么初始化时有电平跳变?

news2024/9/21 12:36:08

GPIO初始化时有时钟配置、模式配置、输出配置、复用配置,那么在编写初始化代码时,到底该按什么顺序执行呢?如果顺序不当那初始化过程可能会出现短暂的电平跳变。

第一步,初始化MCU外设时,一般都需要先打开对应寄存器的接口时钟,所以GPIO时钟使能一定是第一步,否则后面执行的初始化配置无法写入到寄存器中。

第二步,

对于外设复用的GPIO,则需要先配置好GPIO的重映射或者复用选择器,让这个GPIO先内部连接到外设上;

如果我们先初始化GPIO复用模式那么可能默认的复用不是我们想要的外设功能,此时IO按默认外设的默认电平输出,接着软件又配置复用选择器连接到想要的外设,输出电平再次发生变化,就会出现这个短暂的电平变化。

对于普通输出IO,则需要先配置好输出状态。

因为寄存器里默认输出值是0,如果GPIO想要默认状态高,那初始化完GPIO后再配置IO输出高也会出现短暂的低电平导致电平变化。

第三步,

初始化GPIO模式,其中一般有输出、输入、复用、模拟等几种模式,有的芯片也可以配置内部的上下拉电阻是否开启,在输出模式时还有GPIO驱动能力配置。

当然也有特殊情况,以TIMER PWM输出为例,不同的PWM模式默认电平有高和低两种情况,和TIMER配置有关,此时我们按标准顺序配置好GPIO后再配置TIMER,则也可能出现电平变化,如果PWM用于控制功率开关,则可能对电路带来不良影响。所以对于这类外设默认电平可配的外设,想要启动外设工作前保持默认电平的话,我们就可以先初始化好外设,再按标准的顺序配置GPIO。

所以GPIO虽然简单,但实际也有很多细节,想要让软硬件更加可靠,需要抓住这些细节优化软硬件设计。

这里推荐大家购买我们红枫派开发版,其中的例程和驱动程序就是考虑到细节设计的,可以方便大家二次开发产品。

以上即为本期讲解,如有问题或建议,欢迎评论区讨论。

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

 

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

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

相关文章

Multi-Head Mixture-of-Experts笔记

这篇文章(还是校友),也是和dot product本身没什么关系。讲一讲核心思想 文章在背景中介绍了Sparse Mixture of Experts,因为MH-MoE也是在S-MoE基础上做的,个人感觉其实变动并不大,但我觉得写的很清楚&…

优化 Spring Boot 项目启动速度:高效管理大量 Bean 注入

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119@qq.com] 📱个人微信:15279484656 🌐个人导航网站:www.forff.top 💡座右铭:总有人要赢。为什么不能是我呢? 专栏导…

卷积神经网络 - 卷积运算篇

序言 在探索深度学习尤其是计算机视觉领域的奥秘时,卷积神经网络( Convolutional Neural Networks, CNNs \text{Convolutional Neural Networks, CNNs} Convolutional Neural Networks, CNNs)无疑占据了核心地位。而卷积运算,作为…

书生大模型基础岛-第二关:8G 显存玩转书生大模型 Demo

1.来源 https://github.com/InternLM/Tutorial/blob/camp3/docs/L1/Demo/task.md 2.过程 在 /root/share/pre_envs 中配置好了预置环境 icamp3_demo conda activate /root/share/pre_envs/icamp3_demo创建一个目录,用于存放我们的代码。并创建一个 cli_demo.py …

【JVM基础09】——垃圾回收-对象什么时候可以被垃圾回收器回收?

目录 1- 引言:垃圾回收1-1 什么是垃圾回收?(What)1-2 为什么要进行垃圾回收?(Why) 2- ⭐核心:对象什么时候可以被垃圾回收器回收?(How)2-1 对象什么时候可以被回收?2-2 引用计数法引用计数法存在的问题&…

误删文件大救星!4款必备数据恢复软件,轻松恢复各类文档照片

在数字化的时代信息就是王道,很多时候丢失了信息就以为着丢失了资源。这时候就需要失易得数据恢复这样的数据恢复工具来帮我们守护信息的安全。 1.福昕数据恢复 https://www.pdf365.cn/foxit-restore/链接直达:https://www.pdf365.cn/foxit-restore/ …

设计模式-创建型模式-单例设计模式

创建型模式提供创建对象的机制,能够提升已有代码的灵活性和复用性; 常用的有:单例模式、工厂模式、建造设模式;不常用的:原型模式; 1.概述 单例模式是最简单的模式之一,其保证了某个类在运行期…

Ubuntu22 下 Docker 安装,VS Code Docker配置

1. Docker 安装 1. 卸载旧版本的 Docker(如果有): sudo apt-get remove docker docker-engine docker.io containerd runc 2. 更新软件包: sudo apt-get update sudo apt-get upgrade 3. 安装 Docker 依赖: sudo apt-…

苹果手机通讯录恢复教程?3招速成指南

随着科技的不断进步,手机丢失、系统崩溃等意外情况也时有发生,一旦这些情况发生,我们宝贵的通讯录资料很可能会付诸东流。对此,本文为广大苹果手机用户提供一份简洁明了的通讯录恢复教程,让你轻松掌握苹果手机通讯录恢…

接了一个2000块的小活,大家进来看看值不值,附源码

如题,上周的一天,朋友圈的一个旧友找到了我,说让我帮他开发一个小工具,虽然活不大,但没个几年的全栈经验还不一定能接下来,因为麻雀虽小,涉及的内容可不少: 需求分析 原型设计 详细…

Halcon 边缘提取(像素)

传统提取边缘的方法即通过图像中的明暗进行过滤,其左右就是根据明暗区域找到像素边界。从数学角度,滤波器决定图像剃度,该图像剃度通常作为边缘幅度和边缘方法返回。通过选取所有边缘幅值高的像素点,可以提取区域间的轮廓。另一个…

G1简介、各种GC总结

概述 G1首次出现是在JDK 6u14版本里作为体验版,JDK 7u4版本被正式推出,JDK 9中被设置为默认垃圾收集器(参考JEP 248)。 G1全称是Garbage First,目标:延迟可控的情况下,尽可能高的吞吐量。一款…

怎么使用Element ui来做一个前端登录页面

找到Layout 布局 他通过基础的 24 分栏,迅速简便地创建布局。 找一个对齐方式 这个就不错,找到对应的代码 这个 复制进入idea 引入我们的图片和文字 我这里图片有点问题 然后我再添加一条分割线 加入表单校验 把里面的代码同上加入idea 结果 对表单内容进行调整 …

CAPL使用结构体的方式组装一条DoIP车辆声明消息

如果你参加过我的《CAPL编程系统性课程》,你就结构体类型天然就能表示报文结构,用结构体表示报文虽然麻烦,但灵活度更高。 我们今天试着用结构体类型表示DoIP车辆声明消息的DoIP报头,然后组装一条DoIP消息发送出去。 DoIP消息结构如下: DoIP车辆声明消息结构如下: /**…

等保测评练习卷22

等级保护初级测评师试题22 姓名: 成绩: 一、判断题(10110分) 1. 在应用系统测试中,如果审计是一个独立的功能,那么应用系统应对审计进程进行保…

python反序列化

🎼个人主页:金灰 😎作者简介:一名简单的大一学生;易编橙终身成长社群的嘉宾.✨ 专注网络空间安全服务,期待与您的交流分享~ 感谢您的点赞、关注、评论、收藏、是对我最大的认可和支持!❤️ 🍊易编橙终身成长社群&#…

Blackcat V2.2付费会员制WordPress资源站主题

Blackcat-付费会员制WordPress资源站主题,该主题是基于简约实用的主题选项框架 Codestar Framework 进行开发的功能强大的付费会员制主题,该主题尤其适合用于搭建付费下载资源网站,比如素材站、软件站、视频教程站等付费资源下载网站。 集成…

unity2D游戏开发17战斗精灵

导入 将PlayerFight32x32.png拖Player文件夹进去 设置属性 创建动画剪辑 选中前四帧,右键Create|Animation,将动画命名为player-ire-east 其他几个动画也创建好后,将其拖到Animations|Animations文件夹 选中PlayerController,再点击Animator 创建新的Blend Tree Graph,并重…

JAVA基础 - 图形页面

目录 一. 简介 二. Swing 技术基础 三. 事件处理模型 四. 适配器 五. 布局管理 六. 可视化工具 一. 简介 Java 图形用户界面技术主要有: AWT 、 Applet 、 Swing和 JavaFX 。 AWT(Abstract Window Toolkit,抽象窗口工具包) …