GD32F303取消PB4引脚NJTRST功能映射

故障的出现

今天配置好GD32F303CBT6的RT-Thread框架后,发现PB4无法拉低,一直处于上拉状态,以为是框架配置的有问题,但是PB3和PB5能够正常的配置电平的高低,百思不得其解。

故障的解决

打开GD303的datasheet,查看pin设置表格后发现PB4默认状态为JTAG模式下的NRST引脚,一直处于上拉状态,无法控制下拉。
在这里插入图片描述
于是调用在在配置PB4引脚之前调用指令:

//管脚复用时钟使能
rcu_periph_clock_enable(RCU_AF);
//PB4管脚默认是NJTRST,要当GPIO,需要重映射
gpio_pin_remap_config(GPIO_SWJ_NONJTRST_REMAP, ENABLE)

将PB4引脚的NJTRST功能复用去掉,即可正常将PB10当做正常IO来使用。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要配置GD32F303的PB9引脚中断,可以按照以下步骤进行操作: 1. 首先,确保已经使能了GPIOB的时钟。可以使用以下代码来实现: ```c RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE); ``` 2. 设置PB9引脚为输入模式。可以使用以下代码来实现: ```c GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; // 可根据需要选择上下拉电阻 GPIO_Init(GPIOB, &GPIO_InitStructure); ``` 3. 配置外部中断线路。可以使用以下代码来实现: ```c EXTI_InitTypeDef EXTI_InitStructure; EXTI_InitStructure.EXTI_Line = EXTI_Line9; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; // 根据需要选择触发模式 EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); ``` 4. 配置中断优先级。可以使用以下代码来实现: ```c NVIC_InitTypeDef NVIC_InitStructure; NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; // 设置优先级 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); ``` 5. 在中断处理函数中编写你的中断处理代码。可以使用以下代码来实现: ```c void EXTI9_5_IRQHandler(void) { if (EXTI_GetITStatus(EXTI_Line9) != RESET) { // 在这里编写中断处理代码 // ... EXTI_ClearITPendingBit(EXTI_Line9); } } ``` 以上是GD32F303芯片的PB9引脚中断的基本配置步骤。根据实际需求,你可能需要进一步配置中断优先级、中断触发模式等。请根据你的具体要求进行进一步的配置。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值