GD32F303想控制PA13~15、PB3和PB4不成功?

描述

有没有小伙伴遇到这种情况:在使用GD32F303的时候,想要将PA13~15以及PB3和PB4作为IO口来使用,却怎么也不成功呢?下面小编就来告诉大家原因。

我们先来看下GD32F303 datasheet中这几个引脚的定义:

嵌入式

 

嵌入式

 

原来,这几个引脚比较特殊,它们在默认情况下,是用于调试的JTAG/SWD口功能,想要当做普通IO口或者其他复用功能来使用需要进行“remap”。

那么如何进行remap呢?我们再来看下GD32F303 用户手册中的《GPIO和AFIO》章节中的JTAG/SWD 备用功能重映射介绍:

嵌入式嵌入式

 

可以看到,remap有多种模式可以选择,比如将SWJ_CFG设置为“010”,那么就可以保留SWD功能,即PA13和PA14还可以用于调试,而PA15、PB3和PB4则被“释放”,从而可以当做普通IO或者其他复用功能引脚使用;若设置SWJ_CFG为“100”,那么PA13~PA15、PB3、PB4都可以当做普通IO口来使用,但注意,这个时候要想再用SWD模式去调试MCU会失败哦。

现在来教大家如何通过库函数实现JATG/SWD的remap功能。

通过用户手册我们可以看到SWJ_CFG【2:0】位于AFIO_PCF0中,所以必须要先打开AF时钟:

嵌入式

 

然后再使用gpio_pin_remap_config函数进行remap配置就可以了。所以完整的代码是:

嵌入式

 

调用该段代码后,小伙伴们就可以将这些特殊引脚配置为你想要的功能啦!

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

全部0条评论

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

×
20
完善资料,
赚取积分