STM32F0(2)GPIO口配置
// 配置端口的輸入 , 輸出模式
// 將PA0 配置為輸入模式
void GPIO_Init(void)
{
RCC->AHBENR |= RCC_AHBENR_GPIOAEN; // 打開當(dāng)前GPIO口的時(shí)鐘
GPIOA->MODER &= ~GPIO_MODER_MODER0_1; // 設(shè)置為 輸入 模式
GPIOA->MODER &= ~GPIO_MODER_MODER0_0;
GPIOA->PUPDR &= ~GPIO_PUPDR_PUPDR0_1; // 設(shè)置為上拉輸入
GPIOA->PUPDR |= GPIO_PUPDR_PUPDR0_0;
}
// 將PA15 配置為輸出模式
void GPIO_Init(void)
{
RCC->AHBENR |= RCC_AHBENR_GPIOAEN; // 打開當(dāng)前GPIO口的時(shí)鐘
GPIOA->MODER |= GPIO_MODER_MODER15_0; // 設(shè)置為 輸出 模式
GPIOA->MODER &= ~ GPIO_MODER_MODER15_1;
GPIOA->OTYPER &= ~GPIO_OTYPER_OT_15; // 設(shè)置為推挽輸出
GPIOA->OSPEEDR |=GPIO_OSPEEDR_OSPEEDR15_1; //設(shè)置為輸出速率最大。
GPIOA->OSPEEDR |=GPIO_OSPEEDR_OSPEEDR15_0;
}
// 將PA3設(shè)置成復(fù)用功能 -- UART2_Rx引腳
void GPIO_Init(void)
{
RCC->AHBENR |= RCC_AHBENR_GPIOAEN; // 打開當(dāng)前GPIO口的時(shí)鐘
GPIOA->MODER |= GPIO_MODER_MODER3_1; // 開啟GPIO復(fù)用模式
GPIOA->MODER &= ~GPIO_MODER_MODER3_0;
GPIOA->AFR[0] |= 0x00001000; // 開啟復(fù)用功能的對應(yīng)AFIO(具體AFR對應(yīng)何種數(shù)值參考截圖)
}