提示:3.国民技术N32G45X例程之-JTAG口复用GPIO
前言
提示:国民技术N32G45X默认打开JTAG调试口,而相对应的IO要使用GPIO功能,那就要做为复用功能打开,随便说一下国民技术N32G45X库函数没有能正常关闭JTAG调试口。
提示:以下是本篇文章正文内容,下面案例可供参考
一、软件配置方法
1.一般配置方法
代码如下(示例):(库函数可能存在BUG无法关闭JTAG)
//GPIO_ConfigPinRemap。这个函数有BUG不能关闭JTAG
GPIO_ConfigPinRemap(GPIO_RMP_SW_JTAG_DISABLE, ENABLE);
RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_AFIO | RCC_APB2_PERIPH_GPIOA | RCC_APB2_PERIPH_GPIOB, ENABLE);
GPIO_InitStruct(&GPIO_InitStructure);
GPIO_InitStructure.Pin = GPIO_PIN_13;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitPeripheral(GPIOA, &GPIO_InitStructure);
2.改进后的配置
代码如下(示例):
//GPIO_ConfigPinRemap这个函数有BUG不能关闭JTAG
GPIO_ConfigPinRemap(GPIO_RMP_SW_JTAG_DISABLE, ENABLE);
RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_AFIO | RCC_APB2_PERIPH_GPIOA | RCC_APB2_PERIPH_GPIOB, ENABLE);
JTAG_Set(JTAG_SWD_DISABLE);//将调试用的PA13作普通IO口。
GPIO_InitStruct(&GPIO_InitStructure);
GPIO_InitStructure.Pin = GPIO_PIN_13;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitPeripheral(GPIOA, &GPIO_InitStructure);
3.关闭JTAG函数
代码如下(示例):
//JTAG模式设置,用于设置JTAG的模式
//mode:jtag,swd模式设置;00,全使能;01,使能SWD;10,全关闭;
void JTAG_Set(u8 mode)
{
u32 temp;
temp=mode;
temp<<=25;
RCC->APB2PCLKEN|=1<<0; //开启辅助时钟
AFIO->RMP_CFG&=0XF8FFFFFF; //清除MAPR的[26:24]
AFIO->RMP_CFG|=temp; //设置jtag模式
}
该处使用的url网络请求的数据。
二、程序下载
3.国民技术N32G45X例程之-JTAG口复用GPIO
https://download.csdn.net/download/suqingxiao/69300113