stm32学习1跑马灯程序之寄存器版本
扫描二维码
随时随地手机看文章
1使能IO口时钟,配置相关寄存器RCC->AHB1ENR
2初始化IO口模式。配置四个寄存器GPIOX_MODER/GPIOX_OTYPER/OSPEEDER/PUPDR
3操作IO口,输出高低电平。配之寄存器GPIOX_ODR或BSRRL/BSRRH
1:RCC是一个结构体指针RCC->AHB1ENR使能寄存器AHB1,使能外部时钟第六位,位5,及设置这一位为1 ,c语言中利用或运算A|=B相当于A=A|B,32位及寄存器两种写法:1)RCC->AHB1ENR|=0x0020
2)RCC->AHB1ENR|=1<<5;1左移5位比较直观
2:GPIOF->MODER=
32位寄存器,一组寄存器对应16个IO口,所以要配置9和10IO口,第一步配置pin9的时候相当于对MODER的第18和19位进行配置因为模式为通用输出,所以配置为01其他位不变,想把其清零然后与01 进行或运算,采用简单方法,将3左移18位
GPIOF->MODER&=~(3<<(2*9));
GPIOF->MODER|=1<<(2*9);
同样的原理配置Pin相应的寄存器,同理参照手册知ODR寄存器仅用到低16位,所以对其进行配置即可,以上123步已经完成。
接下来书写主函数部分,头文件包络#include "stm32f4xx.h"#include"led.h"用到延时函数所以include“delay.h”然后写主函数