本次更新内容为STM32CubeMX生成STM32H7 工程项目应用说明关于Pinout&Configuration中System Core说明,文中Tips是比较易出错的点,多多关注。欢迎关注本公众“硬件开发不完全攻略”,更多干货文章持续分享。文中有图片导入是出现问题,未得的最优的阅读体验,请关注微信公众号。
本文详细内容可下载本号付费资源文档“STM32CubeMX生成STM32H7 工程应用说明完整版49页.docx”,免费下方式为关注“硬件开发不完全攻略”,后台回复“STM32”,即可免费下载。
1Pinout&Configuration
1.1System Core
1.1.1GPIO
配置GPIO,需要在Pinout view中直接找出对应的GPIO口,点击右键,选择对应的功能。需要配置为中断的GPIO也要在此进行配置,右键选择“GPIO_EXTIx”。
1.1.1.1功能要点
1)GPIO输出速率
注:当GPIO作为MAC、I2C、SPI、UART功能时,要根据其总线频率要求,配置对应合适的输出频率。当然频率越高,功耗越大,噪声也相对越大,对外围电路的要求也更高。所以,也不是越高越好。
2)GPIO输出状态控制
3)GPIO性能相关
1.1.1.2普通输入输出配置
需要配置的参数项,如下图所示。
1.1.1.3GPIO中断配置
STM32H7XX的GPIO中断配置如下:
1.1.1.4Tips
1)User Label:在产品中,每一个GPIO一般都会有其对应的实际功能,我们可以在GPIO列表中配置其User Label,提高可读性和易用性;
2)GPIO output level:配置output类型GPIO初始化时的IO电平状态,根据实际设计原理,一般初始化为非有效电平。例如:高电平点亮某LED灯,则初始化为低电平;
3)GPIO中断,只能支持EXTI0-EXTI15共16个中断,分别对应GPIO_PIN_0-15,不支持多个BANK的相同PIN脚同时配置为中断模式,例如:PA5配置了GPIO中断,PB5/PC5等都不能再配置为GPIO中断;
4)在Pinout view中,查找某个GPIO时,可以使用下部的搜索框。
1.1.2IWDG1
1.1.2.1功能要点
最大可设置超时时间32.768S
32K时钟,256分频,时钟频率为32*1000 /256 = 125 Hz
最大超时时间:4096/125 = 32.768S
此看门狗,一旦起动,不能再停止。
1.1.2.2配置
1.1.2.3Tips
1)IWDG一旦起动,无法停止;
1.1.3RCC
1.1.3.1功能要点
1.1.3.2配置
根据项目实际设计,选择是否使能HSE、LSE,以及供电模式(MCU关于PWR的相关内容及说明,见本文档的PWR章节)。
1.1.4SYS
SYS用于定义系统的TICK,选用SysTick。CubeMX配置的TICK频率是:每个TICK/1MS。
1.1.5NVIC
Tips1:Time base System tick timer中断优先级要尽可能地高,HAL库中很多超时等待都依赖于此systick,非必要,也不建议在此中断中再增加服务函数;
Tips2:首先在各个功能模块中使能各自需要的中断,最后再在NVIC中配置各个中断的优先级。
1.1.6CORTEX_M7
此块主要用于配置CPU及MPU的相关功能。
Tips1:CPU ICache推荐使能,能够加快执行速度。CPUDCache使能后,也可以加快执行速度,但是程度设计时需要注意Cache一致性问题,尤其是用到DMA功能时;
Tips2:MPU配置,目前的应用中外部总线需要开启MPU;以太网的Tx Rx内存描述表区域需要开启MPU,LWIP的PBUF内存也建议开启MPU。MPU中有比较多的配置项,具体应该如何配置,建议先按照DEMO来配置。