OpenEdv-开源电子网

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

STM32F107 移植原子FreeRTOS例程 delay_init()函数问题

[复制链接]

3

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2013-3-20
在线时间
6 小时
发表于 2020-2-27 17:20:51 | 显示全部楼层 |阅读模式
1金钱
原子哥,
    请教一个问题,我用F107板子,移植咱们的《FreeRTOS实验2-1 FreeRTOS移植实验》实验
    更改了启动文件定义,并更改了“startup_stm32f10x_cl.s”文件,硬件晶振是25M
    在delay_init()初始化之后,调用delay_ms(1000);  延时时间并不是1秒?
void delay_init()
{
        u32 reload;
        SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);//Ñ¡Ôñía2¿ê±Öó  HCLK
        fac_us=SystemCoreClock/1000000;                                //2»ÂÛêÇ·ñê1óÃOS,fac_us¶¼Dèòaê1óÃ
        reload=SystemCoreClock/1000000;                                //ÿÃëÖóμļÆêy′Îêy μ¥λÎaM  
        reload*=1000000/configTICK_RATE_HZ;                        //¸ù¾YconfigTICK_RATE_HZé趨òç3öê±¼ä
                                                                                                //reloadÎa24λ¼Ä′æÆ÷,×î′óÖμ:16777216,Ôú72MÏÂ,Ô¼oÏ0.233s×óóò       
        fac_ms=1000/configTICK_RATE_HZ;                                //′ú±íOS¿éòÔÑóê±μÄ×îéùμ¥λ          

        SysTick->CTRL|=SysTick_CTRL_TICKINT_Msk;           //¿aÆôSYSTICKÖD¶Ï
        SysTick->LOAD=reload;                                                 //ÿ1/configTICK_RATE_HZÃëÖD¶Ïò»′Π      
        SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk;           //¿aÆôSYSTICK   
}       


以上标红的参数都修改过,但是好像没有什么作用,请问是什么原因导致延时不准?谢谢

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-25 22:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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