STM32的IO,配置的時候,首先要打開時鐘,即RCC。配置寄存器,可以通過庫,也可以直接控制寄存器。他的寄存器有好幾個,但基本上常用的就幾個,GPIOx->CRL,GPIO->CRH,GPIOx->IDR,GPIOx->ODR.
CRL配置低8位IO,CRH配置高8位IO
配置時,需要配置模式與速度。
模式有:普通推挽輸出,普通開漏輸出,復用推挽輸出,復用開漏輸出,模擬輸入,浮空輸入,上下拉輸入(需要GPIOx->ODR配合)。
其中復用的意思是帶功能的,比如串口輸出,即要使用復用輸出,這時,IO口,會被串口模塊控制。
如果要開復用的話,需要在RCC中,打開復用時鐘。
速度主要是說輸出,有:2M,10M,50M三種極限頻率,據說配置成低頻可以省電,但具體沒有測試過,所以也不好說。
剩下就是GPIOx->ODR和GPIOx->IDR
ODR,是輸出
IDR,是輸入
這倆寄存器沒有高低之分,一個是16位的,可以控制16IO。