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

描述

如果大家在进行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就不可以组合使用。

GPIO

 

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

GPIO

 

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

1、remap重映射模式下

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

GPIO

 

 

具体配置代码如下图所示

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。

\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擦除后再烧录。

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

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分