如果大家在进行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控制位进行配置。
具体配置代码如下图所示
  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擦除后再烧录。
以上即为本期讲解,如有问题或建议,欢迎评论区讨论。


点赞(0)

评论列表 共有 0 条评论

暂无评论