stm32定时器从模式解析
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
首先目前在网上没有找到很多资料所以在此做一个总结
定时器从模式这里只做三种内部分析
- 复位模式
- 门控模式
- 触发模式
当主定时器的信号出现上升沿或者下降沿时会触发从定时器的相应动作
复位模式
主定时器出现信号后从定时器计数器复位并产生一个中断
门控模式
主定时器出现信号后从定时器计数器开始工作
主定时器信号结束后从定时器计数器停止工作并产生中断
触发模式
主定时器出现信号后从定时器计数器开始工作并且不会停止
触发模式主定时器只是提供了一个启动从定时器开始时间的控制并不会有其他效果
定时器框图
当使用从定时器触发模式时
下面引用一个示例演示
基本思路
开启两个定时器定时器2与定时器3
定时器2做pwm输出定时器3也做pwm输出我家有两颗树一颗是枣树另一颗也是枣树
定时器3的pwm输出跟随定时器2的pwm输出。
如何做 才能又准又稳定还不占用cpu资源
大致思路定时器2的ch2输出并将ch2的OC2REF作为从定时器3的TRGO并通过主从对应表找到相应的ITRx当出现上升沿或下降沿时会触发从定时器的开启。
具体配置
定时器2
定时器3配置
从定时器3只是由主定时器2提供一个计时器使能信号所以这里的内部时钟要打开提供给定时器3时钟不过不勾选内部时钟也是可以正常工作的。
从定时器3与普通定时无区别功能相同不需要理解它有多特殊
在生成的代码中开启pwm
if(HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2) != HAL_OK)
{
Error_Handler();
}
if(HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_3) != HAL_OK)
{
Error_Handler();
}
if(HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_4) != HAL_OK)
{
Error_Handler();
}
最后贴出主从对应表
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |