RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);//打开复用时钟 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);//调用重映射函数
时间: 2024-02-07 18:03:59 浏览: 111
//使能SWD和JTAG接口的重映射功能,禁用JTAG接口
这段代码的作用是使能AFIO外设时钟,并调用重映射函数,禁用JTAG接口,启用SWD接口。具体来说:
1. RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE)打开了AFIO外设时钟,使能了AFIO的工作。
2. GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE)调用了重映射函数,将SWD和JTAG接口的映射关系进行了修改,禁用了JTAG接口,启用了SWD接口。
总的来说,这段代码的作用是为了在开发过程中使用SWD接口进行调试和下载程序,而不是使用JTAG接口。这样可以避免一些问题,比如在使用JTAG接口时可能会出现的冲突等。
相关问题
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_Init(GPIOA,&GPIO_InitStructure); GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource2); EXTI_InitStructure.EXTI_Line=EXTI_Line2; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure);
这是一段 STM32 的代码,主要是初始化 GPIO 和 EXTI 以进行中断检测。具体来说,代码首先启用了 GPIOA、GPIOB 和 GPIOC 的时钟以及 AFIO 的时钟,然后禁用了 JTAG 接口,接着初始化了 GPIOA 的第二个引脚为带上拉电阻的输入模式,并将其连接到 EXTI2 中断线上。最后,设置了 EXTI2 的触发方式为下降沿触发,并启用了 EXTI2 中断线。这段代码主要是用于实现外部中断检测,当 GPIOA 的第二个引脚检测到下降沿时,会触发 EXTI2 中断并执行相应的中断处理函数。
void LED_Init(void) { GPIO_InitTypeDef GPIO_Structure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);//ÅäÖÃÒý½Å RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);//¸¨Öú¹¦ÄÜʱÕë //¸Ä±äÖ¸¶¨¹Ü½ÅµÄÓ³Éä GPIO_Remap_SWJ_Disable SWJ ÍêÈ«½ûÓã¨JTAG+SW-DP£© GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); //¸Ä±äÖ¸¶¨¹Ü½ÅµÄÓ³Éä GPIO_Remap_SWJ_JTAGDisable £¬JTAG-DP ½ûÓà + SW-DP ʹÄÜ GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE); GPIO_Structure.GPIO_Pin = LED2_Pin; //LED2£ºµçÔ´ÅÔµÄָʾµÆ GPIO_Structure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Structure.GPIO_Mode = GPIO_Mode_Out_PP; //ÍÆÍìÊä³ö GPIO_Init(LED2_GPIO, &GPIO_Structure); //³õʼ»¯Òý½Å Ó¦ÓÃÒÔÉÏ }
这段代码是一个 LED 初始化函数。它使用了 STM32 的 GPIO 库函数来初始化 LED 引脚。
首先,通过调用 `RCC_APB2PeriphClockCmd` 函数来使能 GPIOB 和 GPIOC 的时钟,并且使能 AFIO (Alternate Function I/O) 的时钟。这些函数用于使能相应的 GPIO 外设时钟。
然后,通过调用 `GPIO_PinRemapConfig` 函数来配置引脚重映射。第一个调用是禁用 SWJ (Serial Wire JTAG) 功能,第二个调用是禁用 JTAG-DP 功能并启用 SW-DP (Serial Wire Debug Port) 功能。
接下来,定义了一个 GPIO_InitTypeDef 结构体变量 `GPIO_Structure`,用于配置 LED 引脚的初始化参数。
使用 `GPIO_Structure.GPIO_Pin` 成员变量设置 LED2 引脚。具体的引脚值可能是一个宏定义,表示要控制的特定引脚。
然后,设置了引脚的速度为 50MHz,并将引脚配置为推挽输出模式。
最后,调用 `GPIO_Init` 函数将以上配置应用到 LED2 引脚上,从而完成 LED 的初始化设置。
请注意,这段代码中的一些函数和宏定义可能是根据特定的 STM32 芯片和开发板而定的,具体实现可能会有所不同。你需要根据自己的硬件平台和需求进行相应的修改。
阅读全文