库函数剖析
前言:
到了阶段二,我们就要系统地学习时钟,STM32几乎每一个引脚都有时钟,时钟信号就是单片机的心跳。
由时钟我们可以引出滴答定时器,滴答定时器可以应用与按键消抖。和51单片机不同,51单片机使用Delay函数消抖需要占用CPU,而使用滴答定时器则不需要消耗CPU。
紧接着就是单片机的按键控制,除了滴答定时器,还要学习普通的定时器。使用定时器实现LED的闪烁有两种方法,第一种就是让定时器溢出,第二种就是使用中断。STM32几乎每一个引脚都可以产生中断,需要管理中断就要学习NVIC和EXTI。之后就是串口(DMA)的实验。
以控制LED为例:
整个代码可以分成三个部分:
-
第一是时钟的配置
-
第二是配置单片机对应的引脚(配置是输入还是输出模式,以及确定输出的模式是什么)
-
第三就是让引脚输出低电平
首先看第一句代码:
RCC就是常说的RCC时钟,APB2是所挂载的时钟总线,后面单词的意思是外设时钟命令。
该函数在stm32f10x_RCC文件当中,和时钟相关的函数一般都会在这个文件当中。
当然同样这个名称的既有.c原文件,还有.h头文件。
在Lib文件夹当中找到对应的头文件。
找到对应的函数,右击查看其定义。
一般函数的上方注释会解释函数的用法,图中为“可以使能或失能APB2外设时钟”,这就是RCC_APB2…这个函数的功能。
图中可以看出该函数需要填入两个参数,函数上方的注释中有解释。
第一个参数解释表示该参数可以用以下的值组合表示。
使用该函数同时使能两个IO口。
第二个参数解释表示该参数选择ENABLE或DISABLE。
下面的函数用来检测用户设置的参数是否为有效参数。