STM32
直播中

哈哈哈

11年用户 963经验值
擅长:可编程逻辑 电源/新能源
私信 关注
[问答]

STM32F2使用CubeMX配置了FreeRTOS+HAL库,,实时的定时器中断函数被系统滴答时钟中断影响了怎么解决?

最近在用STM32F2 系列
使用CubeMX 配置了FreeRTOS+HAL库,
使用定时器6输出一个调制的信号方波, 两个IO口实现,不是一个IO口单纯输出的方波, 可是发现总是在第2个脉冲时,波形异常,定时器提前进入了中断,测了很久,后来又试着把系统的时钟频率由1000Hz改到250 , 发现 被干扰的信号时序后移了一截,
基本可以确定是被系统时钟干扰了吧,
有什么办法解决吗?

测试时,试了2种方式,
1中是中断函数直接在下面函数中执行
void HAL_tiM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
   ***
}
第二种方式是在下面函数中 发出信号量给专门的任务来执行中断函数


两种方式都受到了干扰


此外 在中断函数 HAL_TIM_PeriodElapsedCallback 中直接 使用
taskDISABLE_INTERRUPTS();



taskENABLE_INTERRUPTS();

也不行,会造成卡死,将这两句放在中断函数的外部任务中也没起到作用

回帖(1)

张建

2024-4-26 14:52:48
TIM6只是输出方波的话,不需要进中断啊,设定好PWM输出即可。
如果只需要计时功能的话,只保留一个定时器计时就好了,比如就用滴答定时器,定时发信号,简单一点。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分