0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

聚沃科技 2024-02-01 09:49 次阅读

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

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

wKgaomW6-G2AF4dHAACU62Xv93E371.png

wKgZomW6-GmAT3uiAACfvdxjzog334.png

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

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

wKgZomW6-G-AK6geAADRYq3XovQ877.pngwKgZomW6-G-ADtMZAADx2ojm2Q4011.png

可以看到,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时钟

wKgaomW6-HyAGwjpAAD0dvIWXOQ826.png

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

?code=MDZiYjkwNzQzMzAyYzE0ODFjNzBiMzY0YjI1ZjFhZDRfaVRiYlM5SjlsN2hLcHF2aGN1SUFFQjd5NG5Sc01nWnFfVG9rZW46TnZFZ2JubjlUb05pcmh4T0VxeWNvU0UybnFjXzE3MDY3NTIwNjI6MTcwNjc1NTY2Ml9WNA

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

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

    关注

    6001

    文章

    43973

    浏览量

    620830
  • IO
    IO
    +关注

    关注

    0

    文章

    397

    浏览量

    38510
  • 嵌入式
    +关注

    关注

    4982

    文章

    18281

    浏览量

    288430
收藏 人收藏

    评论

    相关推荐

    STM32H750 PB3PB4PB5配置成SPI功能需要额外处理JTAG功能吗?

    STM32H750 PB3PB4PB5配置成SPI功能需要额外关闭JTAG功能吗。调试选择了SWD,CubeMx 中Debug配置为Serial Wire.此外还需要修改哪里吗。SPI引脚始终没有波形输出
    发表于 03-07 07:03

    GD32F303控制PA13~15PB3PB4不成功?#单片机 #嵌入式开发 #GD32

    单片机嵌入式开发
    聚沃科技
    发布于 :2024年02月01日 09:57:23

    【Nuvoton ISD9160语音识别试用体验】003---ISD9160 Nuvoton Board硬件

    LED RGB是通过GPIO来控制PA11/PA13/PA4;SensorGAS_EN 是通过PA15
    发表于 11-15 00:25

    stm32特殊IO口PA13PA14,PA15PB3PB4转普通

    /*关于STM32F103XXX的J-Link 下载的特殊引脚PA13PA14,PA15PB3PB
    发表于 07-24 11:22

    STM32的PB0-15接收并行16位AD输出出现错误

    STM32 PB0-15脚接收16位AD并行输出,PB3PB4是默认为JTAG管脚RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB
    发表于 12-12 08:50

    配置PB4PB3输出电平一直是高

    我配置完PB3PB4为上拉输出后 分别将其置0或置1 但PB3PB4的 输出电平 一直是高是不是配置错误了配置如下: GPIO_InitStructure.GPIO_Pin
    发表于 04-28 06:24

    PB3 PB4请问如何当普通IO使用

    不好意思!!目前狀況知道PB3 PB4被JTAG使用..那我現在不懂的是程式語法的使用目前試過GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE
    发表于 05-29 00:46

    AT32F403A PB3 PB4 PA15如何用作普通IO使用

    本帖最后由 贪玩 于 2022-2-16 21:58 编辑 AT32F403A 将 PB3 PB4 PA15配置成普通IO使用,配置方法基本和STM32
    发表于 11-10 21:49

    PB3 PB4不能输出他所需要的电平状态原因

    程序调试方法PB3,PB4不能输出他所需要的电平状态原因JTAG/SWD模式设置库函数(在文件stm32f10x_gpio.c中):void GPIO_PinRemapConfig(uint32_t
    发表于 08-16 06:35

    GD32F303】星空派介绍

    、SDIO、EXMC、DAC、ADC、USB、TFT-LCD等。 二、GD32F303芯片介绍:GD32F303系列器件是基于Arm® Cortex®-M4处理器的32位通用微控制器。
    发表于 09-11 17:55

    如何将A15/PB3/PB4做普通IO使用?

    如何将A15/PB3/PB4做普通IO使用?
    发表于 01-18 06:35

    在KEIL5软件中使用STLINK仿真器仿真时出错怎么办

    把自己碰到的问题向大家分享,仅供参考。硬件层面(复用问题)我使用的是杨桃电子的STM32F1开发板,仿真器所使用的IO端口与开发板会有冲突,所以使用前需要拔掉复用冲突的IO端口SW仿真:PA13 PB13
    发表于 02-23 07:04

    RT-Thread在使用J-Link仿真时出现创建线程不成功是为什么

    ,在线程的处理函数中初始化GPIO,控制led闪烁,在使用J-Link仿真时出现创建线程不成功,而且会存在突然退出仿真界面的情况,咨询下是什么原因?可能是我在移植中少移植某个或某些文件导致的?还是说在使用中存在不合理的地方?
    发表于 04-28 10:06

    请问CH32F103 SPI1如何切换到PB3 PB4 PB5?

    如题,我想把SPI1切换到PB3 PB4 PB5,找到一个函数GPIO_PinRemapConfig(GPIO_Remap_SPI1,ENABLE);但是没有作用
    发表于 06-07 06:22

    使用PA15PB3找不到头文件是何原因?怎么解决?

    使用PA15PB3,添加HAL_RCC_AFIO_CLK_ENABLE(); HAL_AFIO_REMAP_SWJ_NOJTAG();找不到头文件
    发表于 02-23 14:05