STM32三种对齐计数模式及其中断回调函数

您所在的位置:网站首页 世纪鼎利股票历史交易数据 STM32三种对齐计数模式及其中断回调函数

STM32三种对齐计数模式及其中断回调函数

#STM32三种对齐计数模式及其中断回调函数| 来源: 网络整理| 查看: 265

STM32定时器的PWM模式主要可以分为两大类,一类是边沿对齐模式,另一类时中间对齐模式。中间对齐模式又有三种对齐方式,这篇文章就来简单的谈一下中间对齐模式种三种对齐方式的区别。

我们可以看参考手册里面的内容

从中断的角度来说,三种对齐模式的差别在于:

模式一 仅在向下计数溢出时产生中断(前提是使能了中断),模式一二仅在向上计数溢出时产生中断,模式三则在两种情况下都会产生中断。如图:

接下来我们用一段程序简单说明

cubemx关于定时器的配置

说明:例子中所采用的芯片主频为170M,经过以下配置,为每1ms计数一次。

冲断频率 = 170M / (170 * 1000) = 1000(Hz)

主函数部分:

int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_TIM1_Init(); /* USER CODE BEGIN 2 */ HAL_TIM_Base_Start_IT(&htim1);//一定要打开 HAL_TIM_PWM_Start_IT(&htim1,TIM_CHANNEL_1);//一定要打开 /* 定时器通道1输出PWM */ HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_2); /* 定时器通道1互补输出PWM */ HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_2); __HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_2,500); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ }

中断函数部分:(注意函数名)

对于模式1与模式2:

理论上产生中断的频率为1KHz,但是由于其在向上计数和向下计数一整个过程中只有一处中断,所以进入中断的频率应为500Hz。所产生的PWM波的频率也应为500Hz。

对于在中断函数里面进行反转的PD4IO口,进入一次中断翻转一次,进入两次中断才能反转出一个周期,所以其频率应为250Hz。

对于模式三,IO翻转的频率要乘以二。

我们通过比较PWM输出的波形,与中断函数中反转的IO的波形开观察三种对齐方式的区别。

红色为PWM输出通道,黑色为反转的IO口。

模式一: 红色500Hz,黑色250Hz。

模式二:红色500Hz,黑色250Hz,但是两个波形的“相对位置”与模式1不同。

模式三:黑红都50Hz。

以上阐述了PWM输出中断的三种对齐方式的不同之处。

参考文章:

(25条消息) STM32 HAL库PWM回调函数的特性_hmc_123的博客-CSDN博客_hal库回调函数icon-default.png?t=M3K6https://blog.csdn.net/hmc_123/article/details/109260888?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165148382916782184684892%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165148382916782184684892&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-109260888.142^v9^control,157^v4^control&utm_term=HAL_TIM_PWM_PulseFinishedCallback&spm=1018.2226.3001.4187

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3