STMCU小助手
发布时间:2022-7-5 19:28
|
前言 方波是指占空比一般为50%,PWM波是指可以调节占空比的 一、方波输出 1. 原理 利用引脚PA11和PA12对应的定时器4通道1/2输出波形
输出比较原理图
输出通道有8中模式,这里采用的是比较输出模式(2),即电平翻转模式。当匹配时,引脚状态翻转。步进电机控制常用的模式 假设CCR寄存器里面的值设定为100,那么计数器从0开始计数,每隔100次,电平将会翻转一次,这样就通过设定CCR寄存器里面的值就可以输出不同频率的方波 假设1M作为计数时钟,计一个数需要t=1e-6s, 波的频率 1/[2*( 100*t)] =5khz 2.STM32CubeMX配置 (1)配置定时器4的模式和通道
(2)配置定时器4计数器的参数和输出比较通道参数,通道模式设置的是电平翻转,比较值设定的是100,每隔100计数,电平翻转一次
(3)配置定时器的输出引脚,输出速率设置为高
(4)配置定时器的中断优先级
3.部分源码
二、PWM波输出 1.原理 生成PWM波采用的是定时器15的通道1和通道2对应引脚为PA2和PA3
输出比较模式选择PWM模式,PWM(脉冲宽度调制)模式可以产生一个由TIMx_ARR寄存器确定频率(周期)、由TIMx_CCRx寄存器确定占空比的PWM信号 PWM模式分为PWM1互为PWM2
在递增计数模式下,计数器从 0 计数到自动重载值( TIMx_ARR 寄存器的内容),然后重新从 0 开始计数并生成计数器上溢事,在中, ARR=999, CCR=300, CNT 从 0 开始计数,当 CNT<CCR 的值 时 , OCxREF 为 有效的 电平 , 比 较中 断寄 存器 CCxIF 置 位 。 当CCR=<CNT<=ARR 时, OCxREF 为无效的电平。然后 CNT 又从 0 开始计数并生成计数器上溢事件,以此循环往复,生成PWM,设置不同的CCR可以调节不同的占空比,设置ARR值可调节周期 若计数时钟为1M,则PWM的频率 = 1 / (1e-3) = 1000hz, 占空比为30% 2.STM32CubeMX配置 (1)配置定时器15的模式和通道选择
(2)配置计数器,pwm生成通道1/2的参数
(3)配置定时器15输出引脚,输出频率高即可
注:PWM的输出不用中断,所以不用配置中断。 3.部分源码
在while循环前添加这几句即可生成PWM波 |
经验分享 | 为什么重启ADC的DMA传输要先停掉ADC?
实战经验 | 基于STM32G474的三相LLC+SR PWM产出方案
STM32固件库分享,超全系列整理
经验分享 | STM32G4 双BANK Flash模式页擦除话题
经验分享 | STM32G4片内FLASH擦写实验笔记
经验分享 | STM32G4系列是否支持位带操作
STM32系列芯片之间相互移植注意事项
STM32如何成为现代科技的隐形引擎
大神都是怎么学习STM32的,我也跟着学
如果你解决了这些问题,就可以直接学STM32
微信公众号
手机版