最近在用
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();
也不行,会造成卡死,将这两句放在中断函数的外部任务中也没起到作用