STM32自学周记(二)
接着上一周的学习,开始寄存器控制跑马灯程序的编写。
(1)调用函数RCC_APB2PeriphColckCmd();控制使能IO口是时钟
(上图是STM32mini版的原理图,上一周学习的是STM32 M4,和mini版的IO口有很多区别,所有重新附图。)
如图可知LED0对应IO口为PD2,LED1所对IO口为PA8。在中文参考手册找出RCC_APB2的介绍,找到这两个IO口对应的位数。
RCC->APB2ENR|=1<<5;
RCC->APB2ENR|=1<<2;
这里用到了C语言的位或运算“|=”,类似于C++中的“+=”。这里的意思是RCC->APB2ENR=它本身的位数或RCC->APB2ENR=1。然后将1左移5位,如图
当1左移5位后来到了 5 的位置,此时无论第五位为何值,与1做或运算结果都为1,此IO就是开启状态,初始化成功。PA8同理。