发 帖  
原厂入驻New

关于FreeRtos操作系统的心跳频率疑问如何解答

215 频率 LED灯
分享
很多人喜欢讲心跳频率设置为1000HZ,这样一个时间片的就是1ms。尝试心跳频率改成了1HZ,并创建了两个同等优先级的任务,没有采用阻塞而是采用时间片轮转执行。第一个任务是关LED灯,第二个任务是开LED灯,为了避免两个任务操作LED外设时出现对寄存器的不完整读写操作,所以设置了一个标志位,保证每个时间片内关灯、开灯的动作只会执行一次。但是却发现灯常亮。
以下为代码:

随后又尝试了采用定时阻塞方法,分别打印两个字符串,发现当心跳频率小于6时,打印的速度异常快,当心跳频率大于等于6时,打印速度和结果正常,即led_on每两秒打印一次,led_off每一秒打印一次。
以下为代码:

以上程序基于STM32F407VGT6,STM32CUBEMX,希望能够得到解答。
0
2020-6-18 04:35:34   评论 分享淘帖 邀请回答

相关问题

1个回答
麻烦你计算一下F407在168M的时候滴答定时器最大的定时时长!!systick是24位定时器,systick的频率可以是HCLK,或者HCLK/8,STM32CubeMX默认应该使用的是HCLK,也就是168MHZ,1/168*2^24≈99846us=0.99846s!根本就到不了1Hz!!!!!!!
2020-6-18 08:38:41 评论

举报

只有小组成员才能发言,加入小组>>

310个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /8 下一条

快速回复 返回顶部 返回列表