STM32的IO配置時沒什麼特殊的,有個注意點就是實用IO前需要先打開其時鐘線,以下是驗證過oK的程序:
RCC->APB2ENR|=GpioBApb2enrEn; //使能PORTB時鐘
GPIOB->CRL&=GpioBitClrM5_13; // IO的模式清零
GPIOB->CRL|=GpioBit5PP;//PB.5 推輓輸出
GPIOB->ODR|=1<<5; //PB.5 輸出高
RCC->APB2ENR|=GpioEApb2enrEn; //使能PORTE時鐘
GPIOE->CRL&=GpioBitClrM5_13; //IO的模式清零
GPIOE->CRL|=GpioBit5PP;//PE.5推輓輸出
GPIOE->ODR|=1<<5; //PE.5輸出高
RCC->APB2ENR|=GpioAApb2enrEn; //使能PORTA時鐘
RCC->APB2ENR|=GpioEApb2enrEn; //使能PORTE時鐘
GPIOA->CRL&=GpioBitClrM0_8; //清io模式
GPIOA->CRL|=GpioBit0IN; //PA0設置成輸入,默認下拉
GPIOE->CRL&=GpioBitClrM2_10&GpioBitClrM3_11&GpioBitClrM4_12;//清io模式
GPIOE->CRL|=GpioBit2IN|GpioBit3IN|GpioBit4IN; // PE2~4設置成輸入
GPIOE->ODR|=GpioBit2IPU|GpioBit3IPU|GpioBit4IPU; //PE2~4 上拉