前言
经过一段时间的项目开发,趁热打铁,记录一下STM32CubeMX的创建以及配套芯片库基本模块的配置
第一章
第一节 新建工程
- 方式一 在主界面选择File-->New Project
- 方式二
直接在主界面点击ACCESS TO MCU SELECTOR
如果有现有的工程可以直接打开**.ios**文件
第二节 搜索芯片型号
在MCU/MPU Selector页面Commercial Part Number搜索自己需要的芯片型号;
双击芯片型号进入下一步
Pinout&Configuration
Categories下列相对应的配置,看图看图
A->Z
可配置项从A-->Z排序,也可以选择这种方式,简单哈哈哈
Clock Configuration
配置时钟页面,我选用的是8MHz的外部晶振,如果刚好你也是8MHz的,可以直接拿去用,其他的可以根据自己外部晶振时钟配置
选择HSE外部晶振
Project Manager
Project
Code Generator
最后一步点击GENERATE CODE 生成工程,需要等待几分钟
那么到目前为止已经完成一个基本工程的创建了;
第二章
基本的外设配置,这里例举常用的配置CAN,SPI,USART,I2C
CAN配置
这一章节最主要的就是CAN的工作频率配置了
CAN是挂在APB1的总线上的,所以时钟是42MHz
工作频率配置
APB1总线时钟/Prescaler(for Time Quantum)/[(Time Quanta Bit Segment 1)+(Time Quanta Bit Segment 2)+ReSynchronization Jump Width]
42MHz / 7 / (9 + 2 + 1) = 0.5MHz = 500KHz
SPI配置
注意spi1的工作频率比较高可以达到42M,其他的spi工作只有大概21M记不清楚了(具体参考数据手册)
主机配置
从机配置
USART配置
这个配置,只需要修改波特率就OK
ADC配置
需要勾选上百年的IN通道,才能出现相对应的ADC配置
FreeRTOS配置
还有一个实时操作系统的懒人移植方法
我这里选用了V2,简单理解就是V2更强大,一般的V1就够用了
CMSIS_V1和CMSIS_V2的区别
CMSIS_V1:
Common API for real-time operating systems along with a reference implementation based on RTX. It enables software components that can work across multiple RTOS systems. 用于实时操作系统的通用API以及基于RTX的参考实现。它使软件组件能够跨多个RTOS系统工作。
CMSIS_V2
Extends CMSIS-RTOS v1 with Armv8-M support, dynamic object creation, provisions for multi-core systems, binary compatible interface. 扩展CMSIS-RTOS v1,支持Armv8-M,动态对象创建,提供多核系统,二进制兼容接口。
内存和Flash占用情况
在只用stm32cubemx生成freertos代码的情况下内存对比:
CMSIS_V1: Program Size: Code=5160 RO-data=476 RW-data=116 ZI-data=4940
CMSIS_V2: Program Size: Code=8544 RO-data=484 RW-data=140 ZI-data=7388