OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 182|回复: 1

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

[复制链接]

  离线 

4

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
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!!!!!!!
回复

使用道具 举报

  离线 

50

主题

5843

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
11125
金钱
11125
注册时间
2013-11-13
在线时间
1181 小时
发表于 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!!!!!!!
回复

使用道具 举报

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

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2017-11-23 04:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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