stm32學(xué)習(xí)1跑馬燈程序之寄存器版本
1使能IO口時(shí)鐘,配置相關(guān)寄存器RCC->AHB1ENR
2初始化IO口模式。配置四個(gè)寄存器GPIOX_MODER/GPIOX_OTYPER/OSPEEDER/PUPDR
3操作IO口,輸出高低電平。配之寄存器GPIOX_ODR或BSRRL/BSRRH
1:RCC是一個(gè)結(jié)構(gòu)體指針RCC->AHB1ENR使能寄存器AHB1,使能外部時(shí)鐘第六位,位5,及設(shè)置這一位為1 ,c語(yǔ)言中利用或運(yùn)算A|=B相當(dāng)于A=A|B,32位及寄存器兩種寫(xiě)法:1)RCC->AHB1ENR|=0x0020
2)RCC->AHB1ENR|=1<<5;1左移5位比較直觀
2:GPIOF->MODER=
32位寄存器,一組寄存器對(duì)應(yīng)16個(gè)IO口,所以要配置9和10IO口,第一步配置pin9的時(shí)候相當(dāng)于對(duì)MODER的第18和19位進(jìn)行配置因?yàn)槟J綖橥ㄓ幂敵觯耘渲脼?1其他位不變,想把其清零然后與01 進(jìn)行或運(yùn)算,采用簡(jiǎn)單方法,將3左移18位
GPIOF->MODER&=~(3<<(2*9));
GPIOF->MODER|=1<<(2*9);
同樣的原理配置Pin相應(yīng)的寄存器,同理參照手冊(cè)知ODR寄存器僅用到低16位,所以對(duì)其進(jìn)行配置即可,以上123步已經(jīng)完成。
接下來(lái)書(shū)寫(xiě)主函數(shù)部分,頭文件包絡(luò)#include "stm32f4xx.h"#include"led.h"用到延時(shí)函數(shù)所以include“delay.h”然后寫(xiě)主函數(shù)