OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4765|回复: 1

关于FreeRtos操作系统的心跳频率

[复制链接]

4

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2017-8-15
在线时间
11 小时
发表于 2017-10-22 17:11:25 | 显示全部楼层 |阅读模式
1金钱
很多人喜欢讲心跳频率设置为1000HZ,这样一个时间片的就是1ms。尝试心跳频率改成了1HZ,并创建了两个同等优先级的任务,没有采用阻塞而是采用时间片轮转执行。第一个任务是关LED灯,第二个任务是开LED灯,为了避免两个任务操作LED外设时出现对寄存器的不完整读写操作,所以设置了一个标志位,保证每个时间片内关灯、开灯的动作只会执行一次。但是却发现灯常亮。

以下为代码:



QQ截图20171022170516.png

随后又尝试了采用定时阻塞方法,分别打印两个字符串,发现当心跳频率小于6时,打印的速度异常快,当心跳频率大于等于6时,打印速度和结果正常,即led_on每两秒打印一次,led_off每一秒打印一次。
以下为代码:
QQ截图20171022170928.png
以上程序基于STM32F407VGT6,STM32CUBEMX,希望能够得到解答。

最佳答案

查看完整内容[请看2#楼]

麻烦你计算一下F407在168M的时候滴答定时器最大的定时时长!!systick是24位定时器,systick的频率可以是HCLK,或者HCLK/8,STM32CubeMX默认应该使用的是HCLK,也就是168MHZ,1/168*2^24≈99846us=0.99846s!根本就到不了1Hz!!!!!!!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2017-10-22 17:11:26 | 显示全部楼层
本帖最后由 zuozhongkai 于 2017-10-22 18:48 编辑

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 23:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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