9.2.1. 常用官方资料
-
《STM32F4xx参考手册》
这个文件全方位介绍了STM32芯片的各种片上外设,它把STM32的时钟、存储器架构、及各种外设、寄存器都描述得清清楚楚。当我们对STM32的外设感到困惑时, 可查阅这个文档。以直接配置寄存器方式开发的话,查阅这个文档寄存器部分的频率会相当高,但这样效率太低了。
-
《STM32F4xx规格书》
本文档相当于STM32的datasheet,包含了STM32芯片所有的引脚功能说明及存储器架构、芯片外设架构说明。后面我们使用STM32其它外设时, 常常需要查找这个手册,了解外设对应到STM32的哪个GPIO引脚。
-
《Cortex™-M4内核参考手册》
本文档由ST公司提供,主要讲解STM32内核寄存器相关的说明,例如系统定时器、中断等寄存器。这部分的内容是《STM32F4xx参考手册》没涉及到的内核部分的补充。 相对来说,本文档虽然介绍了内核寄存器,但不如以下两个文档详细,要了解内核时,可作为以下两个手册的配合资料使用。
-
《Cortex-M3权威指南》、《cortex_m4_Technical Reference Manual》。
这两个手册是由ARM公司提供的,它详细讲解了Cortex内核的架构和特性,要深入了解Cortex-M内核, 这是首选,经典中的经典,其中Cortex-M3版本有中文版,方便学习。因为Cortex-M4内核与Cortex-M3内核大部分相同,可用它来学习, 而Cortex-M4新增的特性,则必须参考《cortex_m4_Technical Reference Manual》文档了,目前只有英文版。
-
《stm32f4xx_dsp_stdperiph_lib_um.chm》
这个就是本章提到的库的帮助文档,在使用库函数时,我们最好通过查阅此文件来了解标准库提供了哪些外设、 函数原型或库函数的调用的方法。也可以直接阅读源码里面的函数的函数说明。
9.2.2. 初识库函数
所谓库函数,就是STM32的库文件中为我们编写好的函数接口,我们只要调用这些库函数,就可以对STM32进行配置,达到控制目的。 我们可以不知道库函数是如何实现的,但我们调用函数必须要知道函数的功能、可传入的参数及其意义、和函数的返回值。
于是,有读者就问那么多函数我怎么记呀?我的回答是:会查就行了,哪个人记得了那么多。所以我们学会查阅库帮助文档 是很有必要的。
打开库帮助文档《stm32f4xx_dsp_stdperiph_lib_um.chm》见图 库帮助文档
层层打开文档的目录标签:
标签目录:Modules\STM32F4xx_StdPeriph_Driver\
可看到STM32F4xx_StdPeriph_Driver标签下有很多外设驱动文件的名字MISC、ADC、BKP、CAN等标签。
我们试着查看GPIO的“位设置函数GPIO_SetBits”看看,打开标签:
标签目录:Modules\STM32F4xx_StdPeriph_Driver\GPIO\Functions\GPIO_SetBits 见图 库帮助文档的函数说明 。
利用这个文档,我们即使没有去看它的具体源代码,也知道要怎么利用它了。
如GPIO_SetBits,函数的原型为void GPIO_SetBits(GPIO_TypeDef * GPIOx , uint16_tGPIO_Pin)。 它的功能是:输入一个类型为GPIO_TypeDef的指针GPIOx参数,选定要控制的GPIO端口;输入GPIO_Pin_x宏,其中x指端口的引脚号,指定要控制的引脚。
其中输入的参数 GPIOx为ST标准库中定义的自定义数据类型,这两个传入参数均为结构体指针。初学时,我们并不知道如GPIO_TypeDef这样的类型是什么意思, 可以点击函数原型中带下划线的 GPIO_TypeDef 就可以查看这个类型的声明了。
就这样初步了解了一下库函数,读者就可以发现STM32的库是写得很优美的。每个函数和数据类型都符合见名知义的原则,当然,这样的名称写起来特别长, 而且对于我们来说要输入这么长的英文,很容易出错,所以在开发软件的时候,在用到库函数的地方,直接把库帮助文档中的函数名称复制粘贴到工程文件就可以了。 而且,配合MDK软件的代码自动补全功能,可以减少输入量。
有的用户觉得使用库文档麻烦,也可以直接查阅STM32标准库的源码,库帮助文档的说明都是根据源码生成的,所以直接看源码也可以了解函数功能。