库函数剖析

前言:

  到了阶段二,我们就要系统地学习时钟,STM32几乎每一个引脚都有时钟,时钟信号就是单片机的心跳。

  由时钟我们可以引出滴答定时器,滴答定时器可以应用与按键消抖。和51单片机不同,51单片机使用Delay函数消抖需要占用CPU,而使用滴答定时器则不需要消耗CPU。

  紧接着就是单片机的按键控制,除了滴答定时器,还要学习普通的定时器。使用定时器实现LED的闪烁有两种方法,第一种就是让定时器溢出,第二种就是使用中断。STM32几乎每一个引脚都可以产生中断,需要管理中断就要学习NVIC和EXTI。之后就是串口(DMA)的实验。

以控制LED为例:

库函数剖析-1

整个代码可以分成三个部分:

  • 第一是时钟的配置

  • 第二是配置单片机对应的引脚(配置是输入还是输出模式,以及确定输出的模式是什么)

  • 第三就是让引脚输出低电平

首先看第一句代码:

库函数剖析-2

RCC就是常说的RCC时钟,APB2是所挂载的时钟总线,后面单词的意思是外设时钟命令。

该函数在stm32f10x_RCC文件当中,和时钟相关的函数一般都会在这个文件当中。

当然同样这个名称的既有.c原文件,还有.h头文件。

库函数剖析-3

在Lib文件夹当中找到对应的头文件。

库函数剖析-4

找到对应的函数,右击查看其定义。

库函数剖析-5

一般函数的上方注释会解释函数的用法,图中为“可以使能或失能APB2外设时钟”,这就是RCC_APB2…这个函数的功能。

图中可以看出该函数需要填入两个参数,函数上方的注释中有解释。

库函数剖析-6

第一个参数解释表示该参数可以用以下的值组合表示。

库函数剖析-7

使用该函数同时使能两个IO口。

第二个参数解释表示该参数选择ENABLE或DISABLE。

库函数剖析-8

下面的函数用来检测用户设置的参数是否为有效参数。