嵌入式应用程序的开发可以基于微控制器厂商提供的驱动程序库,也可以针对外设寄存器直接编写驱动程序。使用厂商提供的驱动程序库进行开发,简单、快捷,兼容性好,便于移植,但代码略多;直接针对寄存器编程进行开发(建议利用头文件stm32f10x.h定义的寄存器结构和位定义),费时耗力,但能够深入理解原理,代码简洁高效。所以,建议初学者从驱动程序库入手,逐渐深入到寄存器编程。
MDK-ARM开发工具本身已经包含了STM32固件库,并可以通过软件包安装程序进行更新。STM32F1xxx_DFP.2.0.0的驱动程序主要在如下目录中:F:Keil_v5ARMPackKeilSTM32F1xx_DFP2.0.0Device,包含了开发所必须的基本代码文件以及外设驱动程序文件。
(1)基本代码文件(均是最基本的文件,均需要在工程中添加)
Device目录下的Include(头文件)和Source(源文件)子目录中包含了最基本的文件。
1、stm32f10x.h——对STM32寄存器地址、结构体类型定义的底层头文件,ST公司提供。使用STM32库时都要包含该文件。
2、system_stm32f10x.c和system_stm32f10x.h——定义核心时钟变量、设置系统时钟和总线时钟等的源文件和头文件,由ST公司提供,需要在工程中添加。STM32库V3.5版本在启动文件中调用该文件中的SystemInit()函数设置时钟,使用之前的版本需要用户在main()函数中自己调用。
3、startup_stm32f10x_hd.s——启动文件,由ST公司提供,需要在工程中添加,其中hd表示不同类型STM32微控制器。如下表所示。
(2)外设驱动程序文件(根据开发项目外设的需求,选择性使用)
Device目录下的StdPeriph_Driver子目录中包含STM32外设的驱动程序,由ST公司提供。用到的外设需要添加相应的源程序文件(MDK V5通过运行环境管理,选择需要的外设)。其中,inc和source中分别存放着驱动程序的头文件和源文件。文件名是stm32f10x_PPP,“PPP”是外设名称,如通用I/O端口(GPIO)驱动程序的头文件为stm32f10x_gpio.h,源文件为stm32f10x_gpio.c。STM32全部的标准外设名称如下表所示。
misc.c和misc.h是一个特别的文件,提供外设访问CM3内核中NVIC(可嵌套向量中断控制器)的函数。使用中断时,需要将该文件添加到工程中。
StdPeriph_Driver目录下有一个重要的文件stm32f10x_stdperiph_lib_um.chm,即STM32F10X标准外设固件库手册,它是驱动程序库使用的帮助文档,实际开发过程中需要经常参考。
StdPeriph_Driver目录下还有一个templates子目录,若要编写异常/中断处理程序,将用到其中的stm32f10x_it.h和stm32f10x_it.c。该文件定义了一些系统异常的接口,但外设的中断服务程序需要用户自己添加。其中stm32f10x_conf.h头文件的作用是用户可以修改外部晶振的参数,也可以设置该文件,来控制程序编译前是Debug还是Release模式。
上一篇:使用STM32实现PMSM电机的正弦驱动
下一篇:STM32 SPI配置
推荐阅读最新更新时间:2024-11-17 20:35
设计资源 培训 开发板 精华推荐
- 用于按钮缓冲器的 LTC2953CDD-2 电压监控器的典型应用电路
- AN431精密5V/1A稳压器的典型应用
- 使用 ON Semiconductor 的 KA7824AE 的参考设计
- LTC4062EDD 演示板,带比较器的单节锂离子电池充电器,+Vin = 4.3V-8V,Bat = 4.2V@0.5A/1A
- BNT8960电机驱动 6~18V 70A
- 使用 Richtek Technology Corporation 的 RT8802A 的参考设计
- L7805A负输出电压电路的典型应用
- 3 基于HSOP8封装的L7986A的降压开关演示板
- LTC3615IUF 双路 3A 同步降压型 DC/DC 转换器具有外部补偿的典型应用
- 使用 Analog Devices 的 ADP2105ACPZ 的参考设计
- 有奖活动|TE无线连接,释放物联网无限潜能!
- 逆袭新机会!来EEWorld 下载中心,做任务赚200积分,轻松实现积分自由
- 下载赢礼 | 雅特生 PMBus 接口非隔离数字 DC-DC 转换器
- 【贝能好礼相送】我们拼啦 寻觅Infineon 调光恒流LED驱动器 ICL5102写真
- TI工业月技术方案深度学习
- EEworld年度盘点 万元惊喜等你拿
- 2023 DigiKey KOL 系列——将TinyML融入IoT物联网应用中
- 有奖直播:Littelfuse电动车充电桩及车载充电器保护设计方案
- 下载有礼|ADI 用于多路抽头输出隔离电源的简易解决方案
- 下载有好礼!TE 户外监控,创建安全稳定社会的重要保障和趋势之选!