尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

STM32CubeMX的配置相关知识

发布时间:2026/9/15 10:40:21

资讯中心
01
ARTICLE

STM32CubeMX的配置相关知识

STM32CubeMX的配置相关知识
功能基础配置RCC时钟在STM32中有5个时钟源为HSI、HSE、LSI、LSE和PLL。从时钟频率来分可以分为高速时钟源和低速时钟源在这5个中HIS、HSE以及PLL是高速时钟LSI和LSE是低速时钟。从来源可分为外部时钟源和内部时钟源外部时钟源就是从外部通过接晶振的方式获取时钟源其中HSE和LSE是外部时钟源其他的是内部时钟源。HSI是高速内部时钟RC振荡器频率为8MHz。HSE是高速外部时钟可接石英/陶瓷谐振器或者接外部时钟源频率范围为4MHz~16MHz。LSI是低速内部时钟RC振荡器频率为40KHz。独立看门狗的时钟源只能是LSI同时LSI还可以作为RTC的时钟源。LSE是低速外部时钟接频率为32.768KHz的石英晶体。这个主要用于作为内部RTC的时钟源。PLL为锁相环倍频输出其时钟输入源可以选择HSI/2、HSE或者HSE/2。倍频可选择为2~16倍但是其输出频率最大不得超过72MHz。RCC 设置选择 HSE(外部高速时钟) 为 Crystal/Ceramic Resonator(晶振/陶瓷谐振器)Clock Configuration时钟配置input frequency外部晶振要与板子晶振相同PLL(锁相环) 的常见应用之一是频率合成器以及音调形成。因此使用锁相环可以生成输入频率的倍数的输出频率。而在微处理器中它们被用于产生稳定的系统时钟。时钟产生器部分在第一部分时钟选择上STM32定时器有四种时钟源选择图中蓝色笔标识分别是①内部时钟(CK_INT)②外部时钟模式外部触发输入(ETR)③内部触发输入(ITRx)使用一个定时器作为另一个定时器的预分频器如可以配置一个定时器Timer1而作为另一个定时器Timer2的预分频器。④外部时钟模式外部输入脚(TIx)这四种情况可由右图表示其中内部触发输入口1~4除了ITR1/ITR2/ITR3/ITR4之外还有一种情况用一个定时器作为另一个定时器的分频器。外部捕获比较引脚有两种分别是引脚1TI1FP1或TI1F_ED引脚2TI2FP2TimersPrescaler为分频系数Counter Period为自动重装载系数。定时计数公式如下Tout ((arr1)*(psc1))/Tclkarr计数重装值psc分频数Tclk系统时钟频率Tout一个周期的时间。频率的计算首先要明确两点1、ARRTIM_Period是计数值2、PSCTIM_Prescaler是预分频值。主频168MHz计算公式Fpwm 主频 / ((ARR1)*(PSC1))(单位Hz)同时需要点击NVIC Settings勾选中断。中断服务函数在stm32h7xx_it.c文件里面。中断四个中断与TIM1定时器相关具体作用如下1.TIM1 Break InterruptTIM1BRKIRQHandler和TIM15 Global InterruptTIM1BRKTIM15_IRQHandleraTIM1 Break Interrupt 是在定时器发生突发Break事件时触发的中断。Break事件可以由外部信号或软件触发用于终止当前的定时器计数。bTIM15 Global Interrupt 是TIM1的全局中断包括更新Update事件、触发和复位Trigger and Commutation事件以及捕获/比较Capture/Compare事件。2.TIM1 Update InterruptTIM1UPIRQHandler和TIM16 Global InterruptTIM1UPTIM16_IRQHandleraTIM1 Update Interrupt 是在定时器更新Update事件发生时触发的中断。Update事件在每个计数周期结束时发生可以被用来实现定时操作。bTIM16 Global Interrupt 是TIM1的全局中断。3.TIM1 Trigger and Commutation InterruptTIM1TRGCOMIRQHandler和TIM17 Global InterruptTIM1TRGCOMTIM17_IRQHandleraTIM1 Trigger and Commutation Interrupt 是在定时器触发和换相事件发生时触发的中断。这个中断通常在使用定时器作为PWM控制器时触发。bTIM17 Global Interrupt 是TIM1的全局中断。4.TIM1 Capture Compare InterruptTIM1CCIRQHandlerTIM1 Capture Compare Interrupt 是在定时器捕获/比较Capture/Compare事件发生时触发的中断。这个中断通常用于实现正交编码器、输入捕获和输出比较等功能。根据具体的应用需求和定时器的功能来进行选择。以下是一些建议1.如果你需要在定时器的每个计数周期结束时进行某些操作可以选择使用TIM1 Update Interrupt。2.如果你需要实现PWM控制器可以选择使用TIM1 Trigger and Commutation Interrupt。3.如果你需要进行输入捕获或输出比较等功能可以选择使用TIM1 Capture Compare Interrupt。4.TIM1 Break Interrupt在一些特定的应用场景中使用比如在需要终止当前计数或中断操作的情况下。1MS定时计数:PrescalerCounter PeriodF1037200-110-1F40716800-110-1STM32F407 的定时器除了 TIM6 和 TIM7其他的定时器都可以用来产生 PWM 输出。其 中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。而通用定时器也能同时产 生多达 4 路的 PWM 输出。在STM32微控制器上定时器的定时时间可以通过以下公式计算得出定时周期 (预分频系数 1) × (计数周期1 ) / APB时钟频率为什么加一这是因为预分频系数和计数周期都是从0开始计数的所以在计算定时周期时需要将它们加1。我们可以把公式简化一下因为我们知道频率是时间的倒数我们将公式两边取到数所以我们可以把公式写成这样子频率 APB时钟频率/(预分频系数 1)/ (计数周期1 )例如假设希望使用定时器实现1毫秒的定时且APB时钟频率为72 MHz可以按照以下步骤进行设置1000 72000000 / (预分频系数 1) / (计数周期1 )这里1000也就是1毫秒的倒数啦而 (预分频系数 1) 和 (计数周期1 ) 可以分别取 72 和 1000所以我们得到 预分频系数 71 计数周期 999其中预分频系数Prescaler用于将定时器的时钟频率分频以降低计数速度。可以通过设置TIMx_PSC寄存器来配置预分频系数。预分频系数的范围根据具体的定时器型号而定一般为16位或32位。计数周期Counter Period定时器的计数器从0开始计数通过设置TIMx_ARR寄存器来配置计数周期的值。计数周期的范围由定时器的位数决定例如16位定时器的计数周期范围为0到65535。APB时钟频率STM32微控制器的主总线时钟频率。它由系统时钟SYSCLK通过预分频器分频得到。可以通过RCC寄存器配置APB时钟频率。不同型号的STM32微控制器可能有不同的APB时钟频率。EXTI外部中断GPIO引脚设置PA0经按键连接至3.3v电平故设置为Pull-down。如连接至0v电平故设置为Pull-up。配置好抢占优先级都是2。抢占优先级Preemption Priority.子优先级Sub Priority.IWDG独立看门狗运行在主程序之外由专门时钟LSI(低速内部时钟)提供主程序发生错误的时候玩意主程序时钟失效的情况下IWDG在主程序外仍能够正常工作只有当递减到0的时候才会触发复位信号。Tout((4×2^PRER) ×RLR)/LSI时钟频率PRER分频系数4RLR重装载值4095LSI32KHz 结果约等于8s.(自己实际约0.5s左右)分频系数16 (自己实际)结果约等于3sWWDG窗口看门狗由APB1时钟分频作为时钟提供通过编程配置来检测应用程序是否过早/迟操作其要求在某个计数区间内喂狗。如果没到区间喂狗/超出区间都会触发复位信号。同时在即将超出区间触发复位之前可以开启提前唤醒中断EWI在复位前进行数据保存等抢救工作。这是独立看门狗所没有的功能。WWDG中只有上限是可以配置的下限是固定的。固定以0X3F(63)处为下限固定在0X4064处可开启EWI。第一项为PSC计算同理不过用的是APB1时钟第二项为上窗口值要求填入数在64-127之间且不大于第三项计数初始值第三项技术初始值要求填入数在64-127之间第四项选择是否开启EWI开启完EWI后别忘了打开对应中断并对中断优先级进行合理配置IICSPI片选引脚。CAN配置CAN相关参数波特率设定为500K时钟频率为42M波特率计算公式42M/21/(121)500K。CAN波特率设置:42MHz(APB1)PrescalerT2T11MHz714500KHz2121500KHz729250KHz2116125KHz21114125KHz421636MHz(APB1)PrescalerT2T1125KHz3616250KHz1816300KHz813500KHz853DMA内存赋值DMA;串口DMA;ETH配置项含义Auto Negotiation自适应功能 选择 Enabled 一般选择使能自适应功能系统会自动寻找最优工作方式包括选择 10MBit/s 或者 100MBit/s 的以太网速度以及全双工模式或半双工模式。LAN8720A支持自适应功能Speed以太网速度 可选 10MBit/s 或 100MBit/s它设定 ETH_MACCR 寄存器的 FES 位的值一般设置 100MBit/s但在使能自适应功能之后该位设置无效。Duplex Mode以太网工作模式 可选全双工模式或半双工模式它设定 ETH_MACCR 寄存器 DM 位的值。一般选择全双工模式在使能了自适应功能后该成员设置无效。Rx Mode接收模式 选择 Polling Mode 轮询方法。ST 官方例程文件包含了中断引脚的相关配置主要用于指示接收到以太网帧我们这里不需要使用。TX IP Header Checksum Computation发送数据校验和 选择 By hardware 使能发送数据硬件校验和。这个需要硬件支持STM32F4xx 控制器是支持的。PHY special control/status register Offset特殊控制/状态寄存器 按照芯片手册填写0x**PHY Speed mask以太网速度状态位 按照芯片手册填写0x****PHY Speed mask以太网工作模式状态位 按照芯片手册填写0x****LwIPLWIP_DHCPDHCP Module选择Enabled。如果使用开发板连接带 DHCP 服务功能的路由器可以使能。否则开发板直接连接电脑电脑是没办法提供 DHCP 服务功能的。LWIP_ICMPICMP Module Activation控制报文协议 选择 Enabled。主要用于网络的调试与维护ping 的时候用。LWIP_IGMPIGMP Module互联网组管理协议 选择 Disabled。可以实现多播数据的接收。LWIP_DNSDNS Module域名解析 选择 Disabled。通过域名解析用户就可以在知道服务器域名的情况下获得该服务器的 IP 地址。LWIP_UDPUDP Module用户数据报协议 选择 Enabled。看需求一般选择用 TCP 协议。MEMP_NUM_UDP_PCBNumber of UDP Connections UDP协议控制块数量决定 UDP 协议控制块需要的 POOL 资源。LWIP_TCPTCP Module传输控制协议 选择 Enabled。MEMP_NUM_TCP_PCBNumber of TDP Connections 同时活动的TCP连接数。MEM_SIZEHeap Memory Size默认1600 Byte(s)。堆内存的大小。如果应用程序将发送很多需要复制的数据应该设置得大一点。MEMP_NUM_PBUFNumber of Memory Pool struct Pbufs 默认 16。memp 结构的 pbuf 数量如果应用从 ROM 或者静态存储区发送大量数据时这个值应该设置大一点。MEMP_NUM_RAW_PCBNumber of Raw Protocol Control Blocks 默认 4。 原始连接就是应用程不经过传输层直接到IP层获取数据PCB 的数目该项依赖 LWIP_RAW 项的开启。MEMP_NUM_TCP_PCBNumber of Listening TCP Connections 默认 8。 同时建立激活的 TCP 连接的数目(要求参数 LWIP_TCP 使能)。MEMP_NUM_TCP_SEGNumber of TCP Segments simultaneously queued 默认 16。 最多同时在队列的 TCP_SEG 的数目。PBUF_POOL_SIZENumber of Buffers in the Pbuf Pool 默认 16。 内存池大小。PBUF_POOL_BUFSIZESize of each pbuf in the pbuf pool 默认 592 Byte(s)。 每个 pbuf 内存池大小。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。