文章目录
一、方波输出
1. 原理
- 前言
- 一、方波输出
- 1. 原理
- 2.STM32CubeMX配置
- 3.部分源码
- 二、PWM波输出
- 1.原理
- 2.STM32CubeMX配置
- 3.部分源码
- 总结
利用引脚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)配置定时器的中断优先级
// 方波输出中断
void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim)
{
if(htim->Instance == TIM4) // 定时器判断
{
if(htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1) // 通道1
{
// 每次中断计数器的值加100
__HAL_TIM_SET_COMPARE(htim, TIM_CHANNEL_1, (__HAL_TIM_GetCounter(htim)+100)); // 5khz
}
else if(htim->Channel == HAL_TIM_ACTIVE_CHANNEL_2) // 通道2
{
// 每次中断计数器的值加500
__HAL_TIM_SET_COMPARE(htim, TIM_CHANNEL_2, (__HAL_TIM_GetCounter(htim)+500));
}
}
}
二、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
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?