STM32F103的PC13、PB3和PB4定義為普通IO口使用
阿新 • • 發佈:2019-02-12
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// PC13初始化: PC13的.c檔案初始化: void GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC| RCC_APB2Periph_AFIO, ENABLE);//使能PORTC口時鐘 BKP_TamperPinCmd(DISABLE);//關閉入侵檢測功能,也就是PC13,可以當普通IO使用 BKP_ITConfig(DISABLE); //這樣就可以當輸出用。 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; //最低速率2MHz GPIO_Init(GPIOC, &GPIO_InitStructure); GPIO_SetBits(GPIOC,GPIO_Pin_13); //輸出1 } PC13在.h檔案的定義: //IO方向設定 #define GPIOC13_IO_IN() {GPIOC->CRH &= 0xFF0FFFFF;GPIOC->CRH|= 0xFF8FFFFF;} #define GPIOC13_IO_OUT() {GPIOC->CRH &= 0xFF0FFFFF;GPIOC->CRH|= 0xFF3FFFFF;} //IO操作函式 #define GPIOC13_OUT PCout(13) //資料埠PC13 #define GPIOC13_IN PCin(13) //資料埠PC13 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// GPIOB3、GPIOB4的.c檔案初始化: void GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);//使能PORTB口時鐘、複用引腳PB3、PB4引腳 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); //關閉JTAG,SWD可以除錯的 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_SetBits(GPIOB,GPIO_Pin_3); //輸出1 GPIO_SetBits(GPIOB,GPIO_Pin_4); //輸出1 } PB3、PB4在.h檔案的定義: //IO方向設定 #define GPIOB3_IO_IN() { GPIOB->CRL &= 0xFFFF0FFF;GPIOB->CRL|= 0xFFFF8FFF;} #define GPIOB3_IO_OUT() {GPIOB->CRL &= 0xFFFF0FFF;GPIOB->CRL |= 0xFFFF3FFF;} ////IO操作函式 #define GPIOB3_OUT PBout(3) //資料埠PB3 #define GPIOB3_IN PBin(3) //資料埠PB3 //IO方向設定 #define GPIOB4_IO_IN() {GPIOB->CRL &= 0xFFF0FFFF;GPIOB->CRL |= 0xFFF8FFFF;} #define GPIOB4_IO_OUT() {GPIOB->CRL &= 0xFFF0FFFF;GPIOB->CRL |= 0xFFF3FFFF;} ////IO操作函式 #define GPIOB4_OUT PBout(4) //資料埠PB4 #define GPIOB4_IN PBin(4) //資料埠PB4