此前已经较为系统的学习了STM32的标准库,为了巩固基础,从头开始记笔记,计划一周的时间完成,然后进行HAL库的学习。
·STM32的功能强大、性能优异、片上资源丰富、功耗低。
SysTick:内核中的定时器,为操作系统提供定时服务。
RCC:对系统的时钟进行配置,使能各个时钟。
GPIO:通用IO口。
AFIO:复用IO口。完成复用功能端口的重定义,中断端口的配置。
EXTI:外部中断。
TIM:定时器,整个STM32最常用,功能最多的外设。
TIM分为高级定时器、通用定时器、基本定时器三种类型。其中最常用的为通用定时器,不仅能完成中断任务,还能完成测频率、生成PWM波形等功能。
ADC:模数转换器。
DMA:直接内存访问,帮助CPU完成搬运大量数据等繁杂任务。
USART:同步或异步串口通信。
I2C/SPI:常用的两种通信协议,可以用硬件输出时序波形。
CAN/USB:通信协议。
RTC:实时时钟,STM32内部完成年月日、时分秒的计时功能。
CRC校验:数据的校验方式,用于判断数据正确性。
PWR:PWR电源控制,使芯片进入睡眠模式,达到省电目的。
BKP:备份寄存器,系统掉电时,仍可由备用电源保持数据。
IWDG/WWDG:看门狗,看门狗能够及时复位芯片,保证系统的稳定。
DAC:数模转换器,在IO口直接输出模拟电压。
SDIO:SD卡接口,读取SD卡。
FSMC:可变静态存储控制器,可用于扩展内存。
USB OTG:USB主机接口。
其中,AHB系统总线的整体性能比APB高,而APB2的性能又高于APB1。
红色:电源相关引脚。蓝色:最小系统相关引脚。绿色:IO口、功能口等引脚。
FT:能够容忍5V电压。
启动配置能够指定程序开始运行的位置,在STM32F10XXX里,可以通过BOOT【1:0】引脚选择三种不同的启动模式。
1.新建存放工程文件的文件夹
2.在KEIL中新建Project,并创建一个新的文件夹用于存放Project。
3.选择器件型号,这里使用的是STM32F103C8T6,故选择STM32F103C8。
4.打开固件库文件夹中的Libraries->CMSIS->DeviceSupport->ST->STM32F10X->startup->arm,其中的文件就是STM32的启动文件,复制所有的启动文件,回到工程模板文件夹,新建一个文件夹,命名为Start,将启动文件粘贴进文件夹内。
5.回到固件库的STM32F10X文件夹,将其中的三个文件复制下来,粘贴到Start文件夹内。
6.打开CM3->CoreSupport。将两个cm3文件粘贴到Start文件夹内。
7.回到Keil软件,将后缀为md.s的启动文件以及所有的.c和.h文件添加进Start组里。
点击魔术棒按钮,打开工程选项,在C/C++里找到Include Paths栏,点击右边三个点的按钮,新建路径将Start的路径添加进去。
9.新建一个User文件夹,再在Keil中添加一个新组,也叫User,在User中添加新文件,选择C文件,名称为main,并将下面的路径选择User文件夹。
10.为工程添加库函数。打开工程文件夹,新建一个文件夹取名为Library,用于存放库函数。
11.打开固件库中的Libraries->STM32F10x_StdPeriph_Driver->src。将其中的所有文件拷贝到Librar文件夹内。
12.打开固件库的inc文件夹,将其中的库函数头文件全选并拷贝到Librar文件夹内。
13.回到Keil软件,在Target处添加组,取名为Library。并将Library内的所有文件添加进去。
14.打开固件库文件夹中的Project->STM32Template。将其中的conf.h文件和两个it结尾的文件复制并粘贴到工程的User目录下。并在Keil中的User组中将这三个文件添加进去。
15.在STM32头文件右键打开文件,拖到最后,复制下面这段字符串,打开工程选项,在C/C++的Define栏目粘贴这个字符串,同时添加头文件路径。
至此,我们的库函数就配置完成了。