本帖最后由 50031185 于 2018-8-16 11:03 编辑 最近在用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(); 也不行,会造成卡死,将这两句放在中断函数的外部任务中也没起到作用 这是 Cube中的中断配置 |
如果只需要计时功能的话,只保留一个定时器计时就好了,比如就用滴答定时器,定时发信号,简单一点。
评分
查看全部评分
是调制波形, 实际上要两个IO口输出信号的
评分
查看全部评分
两个IO的波形是否相关?不相关的话直接两个定时器输出,相关的话可以用一个定时器的两个通道,如果需要调制的话还可以用定时器级连的方式做。官方资料很多的。
评分
查看全部评分
两个IO口输出的是相关的输出信号