GD32 MCU如何将烧录口配置为GPIO使用?

news2025/2/24 0:48:57

如果大家在进行GD32 MCU开发时发现GPIO引脚使用不足,可以尝试将烧录口配置为GPIO使用,这样就可以多出几个引脚使用,但使用的时候如何配置以及有哪些注意事项,本视频将会为大家进行解答。

GD32 MCU存在两种GPIO备用功能的配置,一种是采用成组重映射REMAP的模式,比如GD32F10X/20x/30x/e10x/E50X等系列,一种是采用AFIO模式,比如GD32F1X0/3X0/4XX/E230等。

成组reamp重映射的模式需要将一组的GPIO进行重映射,如下图GD32F30X IIC0的重映射配置,PB6和PB8需要组合使用,PB7和PB9需要组合使用,而PB6和PB9就不可以组合使用。

AFIO模式相较于REMAP的方式,使用更灵活,采用AFIO配置表进行配置,只要这个引脚具有的功能都可以使用,如下图GD32F3X0的AF表,根据表中的配置可以随意使用。

掌握了以上两种GPIO备用功能配置,我们就介绍下两种备用功能下调试口如何作为GPIO使用:

1、remap重映射模式下

如下图所示,可通过调整SWJ_CFG控制位进行配置。

具体配置代码如下图所示

C
        rcu_periph_clock_enable(RCU_AF);
        gpio_pin_remap_config(GPIO_SWJ_SWDPENABLE_REMAP,ENABLE);

具体remap形参配置有以下三种,GPIO_SWJ_NONJTRST_REMAP为全SWD功能,NJTRST可以作为GPIO使用,GPIO_SWJ_SWDPENABLE_REMAP为禁用JTAG,使能SWD,也就是PB15/PB3/PB4可以作为GPIO;GPIO_SWJ_DISABLE_REMAP为JTAG和SWD均禁用,所有的烧录口都可以作为GPIO。

C
      \arg        GPIO_SWJ_NONJTRST_REMAP: full SWJ(JTAG-DP + SW-DP),but without NJTRST
      \arg        GPIO_SWJ_SWDPENABLE_REMAP: JTAG-DP disabled and SW-DP enabled
      \arg        GPIO_SWJ_DISABLE_REMAP: JTAG-DP disabled and SW-DP disabled

 配置烧录口对应的REMAP后,就可以正常配置GPIO了。

2、AFIO模式下

在AFIO模式下,将烧录口对应的引脚配置为GPIO模式即可作为GPIO使用了。

在配置烧录口作为GPIO使用的时候,需要大家特别注意,配置之后烧录口就不可以作为烧录功能了,除非将代码擦除,会影响大家调试代码,因而建议大家可以在配置烧录口为GPIO之前预留几秒钟的时间窗口,这样下次需要烧录的时候可以复位后擦除或者烧录,实际量产后如果不需要这个延迟,可以再将延迟去除。如果时间窗口非常小,一上电就禁用烧录口了,大家可以尝试进入ISP Bootloader擦除后再烧录。

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

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

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

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

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

相关文章

数字陷波器的设计和仿真(Matlab+C)

目录 一、数字陷波器的模型 二、Matlab仿真 1. 示例1 2. 示例2 三、C语言仿真 1. 由系统函数计算差分方程 2. 示例代码 一、数字陷波器的模型 二、Matlab仿真 1. 示例1 clear clc f0=100;%滤掉的100Hz fs=1000;%大于两倍的信号最高频率 r=0.9; w0=2*pi*f0/fs;%转换到…

【深度学习】语音合成,TTS,fish-speech

官方项目地址:https://github.com/fishaudio/fish-speech git clone https://github.com/fishaudio/fish-speech.gitdocker run -it --gpus device3 -v /ssd/xiedong/tts:/ssd/xiedong/tts --net host --shm-size 16G kevinchina/deeplearning:pytorch2.3.0-cuda12.…

玩转CSS:用ul li +JS 模拟select,避坑浏览器不兼容。

玩转CSS:用ul li JS 模拟select,避坑浏览器不兼容。 在前端的工作中,经常会遇到 selcet控件,但我们用css来写它的样式时候,总是不那么令人满意,各种浏览器不兼容啊有没有? 那么,我…

Datawhale AI 夏令营——AI+逻辑推理——Task1

# Datawhale AI 夏令营 夏令营手册:从零入门 AI 逻辑推理 比赛:第二届世界科学智能大赛逻辑推理赛道:复杂推理能力评估 代码运行平台:魔搭社区 比赛任务 本次比赛提供基于自然语言的逻辑推理问题,涉及多样的场景&…

27K star!有没有显卡都能搞,快速基于LLM构建本地智能知识库

觉得搞一个AI的智能问答知识库很难吗?那是你没有找对方向和工具, 今天我们分享一个开源项目,帮助你快速构建基于Langchain 和LLM 的本地知识库问答,在GitHub已经获得27K star,它就是:Langchain-Chatchat L…

在Spring项目中使用Maven和BCrypt来实现修改密码功能

简介 在数字时代,信息安全的重要性不言而喻,尤其当涉及到个人隐私和账户安全时。每天,无数的用户登录各种在线服务,从社交媒体到银行账户,再到电子邮件和云存储服务。这些服务的背后,是复杂的系统架构&am…

进程间关系

目录 亲缘关系 进程组关系 会话关系 孤儿态进程 亲缘关系 亲缘关系主要体现于父子进程,子进程父进程创建,代码继承于父进程,父进程负责回收,子进程诞生至结束父进程全程参与,这种称为强亲缘关系。 系统开机后&…

企业级数据分析平台合集介绍

企业发展离不开数据分析,数据分析推动着企业运营、决策和战略规划。它正逐步深入到各行各业的核心业务流程中,从传统的金融、零售、制造业扩展到医疗健康、教育、能源等更多领域。企业正通过数据分析平台实现数据资源的最大化利用,推动业务与…

wireshark--流量分析利器

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

基于微信小程序的课堂考勤系统的设计与实现(论文+源码)_kaic

基于微信小程序的课堂考勤系统的设计与实现 摘 要 在高校教育普及的今天,学生人数日益增多,为保证课堂质量,教师多要在课前进行考勤。因此本设计提出基于微信小程序的课堂考勤系统,增加了定位功能,避免了“假打卡”…

探索大型语言模型LLama 2:原理揭秘与代码实践

一、引言 1.1 大型语言模型的重要性 大型语言模型作为人工智能领域的重要研究方向,近年来取得了显著的成果。这些模型在自然语言处理、机器翻译、对话系统、文本生成等领域展现了强大的能力,为人类带来了诸多便利。大型语言模型的出现,使得…

卓码软件测评:软件功能测试和非功能测试详情介绍

随着信息技术的不断发展,软件在我们日常生活与工作中扮演着越来越重要的角色。然而,软件质量的好坏直接关系到使用者的体验和企业的声誉。在软件开发过程中,功能测试和非功能测试作为保证软件质量的重要手段,受到了越来越多的关注…

web后端--Spring事务管理

事务也要日志配置 !!!!debug前面记得加空格 logging:level:org.springframework.jdbc.support.JdbcTransactionManager: debugrollbackFor 默认情况下,只有出现RunTimeException才会回滚事务,rollbackfor属性用于控制出现何种异常类型,回滚…

Flink内存管理机制

前言 在Flink的后台界面,可以看到整个Flink的内存情况。 如JobManager的内存情况: TaskManager的内存情况 一、Flink内存管理 Flink TaskManager内存组成整体结构图如下: 二、总内存管理 三、JobManager内存管理内存管理 四、TaskManager内…

运算符优先级、赋值运算符、一元运算符、逻辑运算符

运算符优先级 字符串 布尔 null undefined 赋值运算符 一元运算符 逻辑运算符 && 逻辑与 ||逻辑或 ??空值合并运算符 称为空值合并运算符,它是ES6的一个新特性,它的作用是当一个表达式是nul或者undefined时为变量设…

Pip换源使用帮助

PyPI 镜像使用帮助 PyPI 镜像帮助提高包安装的速度,特别是当默认源访问较慢时。镜像每次同步成功后,每隔 5 分钟进行更新,确保镜像内容尽量与官方源保持一致。 pip 临时使用 如果您只想在一次安装中使用镜像,可以使用以下命令&…

嵌入式到底是啥嵌入了啥?

嵌入式系统(Embedded System)是指一个专用的计算机系统,它作为一个装置或系统的一部分被嵌入其中,来实现特定的功能。我收集归类了一份嵌入式学习包,对于新手而言简直不要太棒,里面包括了新手各个时期的学习…

项目比赛经验分享:如何让即兴发言出彩

项目比赛经验分享:如何让即兴发言出彩 前言1. 顺势趁便法2. 词语撮要法3. 起承转合法4. 数字串连法结语 在项目管理和比赛的激烈竞争中,即兴发言往往成为展示个人魅力和团队精神的重要环节。如何在短时间内组织语言,表达清晰、有力的观点&…

Python代码规范!详细说明!

背景 最近在协作开发过程中,遇到了诸多问题。总结下来主要有两点大问题 代码风格不统一,代码习惯问题严峻。系统解耦不清晰,信息传输不清晰。 于是打算针对市面上常见的代码规范进行强调,结果在查看Google python代码规范文档的…

098、Python 通过编程实现发送邮件的方法

要通过Python编程实现发送邮件,首先得先登录自己的发送邮箱对发送进行相关设置。 一、进行发送邮箱相关设置 1、如下图,点击设置->POP3/SMTP/IMAP 2、然后开启POP3/SMTP服务,并获取授权码和SMTP服务器的地址,如下图&#xff…