下面为大家介绍使用HAL库的版本,HAL库是ST公司新推出的一个基于硬件抽象层编程的库,而且推出了STM32CUBEMX软件方便编程,使用起来非常方便。
下面为大家介绍STM32CUBEMX这个软件。(搭配有详细视频讲解STM32CUBEMX软件,从获取到安装,再到搭建开发环境)。
STM32Cube 是一个全面的软件平台,包括了ST产品的每个系列。平台包括了STM32Cube 硬件抽象层(一个STM32抽象层嵌入式软件,确保在STM32系列最大化的便携性)和一套的中间件组件(RTOS, USB, FatFs, TCP/IP, Graphics, 等等).
l 直观的STM32微控制器的选择和时钟树配置
l 微控制器图形化配置外围设备和中间件的功能模式和初始化参数
l C代码生成项目覆盖STM32微控制器的初始化符合IAR™,Keil的™和GCC编译器。
对于新的产品设计,我们强烈推荐使用STM32Cube来加速你的开发过程,并为以后的产品平台移植打下良好的基础。
软件的安装在这里就不介绍了,在我们EEPW论坛有详细的帖子,大家可以去看:STM32CubeMX介绍,下载与安装:http://forum.eepw.com.cn/thread/293058/1
1.新建工程
打开STM32cubeMX软件,点击New Project
然后出现
在弹出来的对话框中可以选择基于芯片创建工程还是基于特定开发板创建工程,因为我们用的是Nucleo系列stm32F410RBT6板卡,所以我们来根据板卡型号选择。
此处,我们选择Board Selector,并进一步选择我使用的开发板NUCLEO-F401RB,
双击该开发板选项,会提示是否采用默认模式初始化所有外设,我选择YES,如图
图中可见,已经完成了初步的配置,并且用不同的颜色进行标识。在左边树状图中,如果该外设能够正常使用,则为绿色,比如本例中的USART2,如果是部分冲突,则会以黄色警告图标的方式进行提醒,比如,此处的ADC1。将鼠标移至黄色叹号处,可以看到所示文字。告诉开发人员,ADC1与PA5以及USART2的当前配置冲突了,因为我们现在将PA5配置为输出、USART2配置为异步串行通信了。点开ADC1前面的加号,则能更清晰看到具体冲突的ADC通道,
其他的也都同理。由于本例使用了默认配置进行初始化,我们需要做的工作就少了许多。
二、项目设置
与很多软件一样,STM32CubeMX也可以进行工程的设置,通过菜单Project->Settings便可进所示工程设置对话框。
点击Code Generator,进行进一步配置,
如果后续不需要新增其他外设,建议Copy necessary,如果后续需要新增其他外设又可能不再用STM32CubeMX,建议Copy all,如果不太会复制到其他地方或者大家的库都放在同一个路径,可以选用Reference,比较节约硬盘空间。
3.配置外设
我们的项目需要用的两个定时器和一个ADC端口,其中一个定时器定时测心率,一个定时器用来PWM输出,ADC用来采集传感器的数据。接下来我们开始配置。
RCC设置,我们使用默认设置。
定时器设置
TIM5设置
TIM5设置
TIM5设置
TIM9设置
ADC设置
时钟配置,时钟配置采用图形配置,直观简单。各个外设时钟一目了然。
功能外设配置
ADC
TIM5
TIM9
这些数值都可以在程序中继续改,大家可以通过调试,跳出来最合适的值。
最后生成工程代码
(楼主小哥哥贴心的录制了配套视频,看文字犯困的萌新,可以观看视频学习)