① StdPeriph_Driver 下面存放的是 ST 官方提供的固件库函数,里面的函数我
们可以根据需要添加和删除,这里面的文件内容用户不需要修改。
② Startup 下面存放的是固件库必须的启动文件。这里面的文件用户不需要修
改。
③ cmsis 下面存放的是固件库必须的核心文件。这里面的文件用户不需要修改。
④ APP 下 面 存 放 的 是 每 个 实 验 的 外 设 驱 动 代 码 , 他 的 实 现 是 通 过 调 用
StdPeriph_Driver 内 的 固 件 库 文 件 实 现 的 , 比 如 led.c 里 面 调 用
stm32f10x_gpio.c 里面的函数对 led 进行初始化,这里面的函数是讲解的重
点。 后面的实验中可以看到会引入多个源文件。
⑤ user 下面存放的主要是用户代码。 stm32f10x_it.c 里面存放的是中断服
务函数,public 存放的是公用函数,Main.c 函数主要存放的是主函数了,这个
大家应该很清楚。
准备内容我们就讲解到这里,接下来我们就要进入我们 LED 闪烁实验的讲解
部分了。 这里需要说明一下,我们在讲解固件库之前会首先对重要寄存器进行
一个讲解,这样是为了大家对寄存器有个初步的了解。大家学习固件库,并不需
要记住每个寄存器的作用,而只是通过了解寄存器来对外设一些功能有个大致的
了解,这样对以后的学习也很有帮助。
首先要提一下,在固件库中,GPIO 端口操作对应的库函数函数以及相关定
义在文件 stm32f10x_gpio.h 和 stm32f10x_gpio.c 中。STM32 的 IO 口相比
51 而言要复杂得多,所以使用起来也困难很多。 首先 STM32 的 IO 口可以由
软件配置成如下 8 种模式:
STM32 模式表
每个 IO 口可以自由编程, 但 IO 口寄存器必须要按 32 位字被访问。
STM32 的很多 IO 口都是 5V 兼容的,这些 IO 口在与 5V 电平的外设连接的时