1. 程式人生 > >STM32F103JTAG引腳配置成普通IO

STM32F103JTAG引腳配置成普通IO

STM32上有兩個除錯介面,一個是JTAG,一個是SWD。SWD佔用2個IO口,分別為SWDIO和SWCLK。標準的JTAG介面是4線:TMS、 TCK、TDI、TDO,分別為模式選擇、時鐘、資料輸入和資料輸出線。因此我們一般用SWD來除錯MCU,這樣,除去SWDIO的兩條線,JTAG介面的另外三個口則可以用來作普通IO口使用。

配置如下:

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //打開復用時鐘
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);//呼叫重對映函式
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); 


GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed   = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_15 ;
GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed   = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_3 ;
GPIO_Init(GPIOB, &GPIO_InitStructure);
 
GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed   = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_4 ;
GPIO_Init(GPIOB, &GPIO_InitStructure);