OpenEdv-开源电子网

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

STM32F1精英板,寄存器开发,delay文件解读

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2020-8-15
在线时间
1 小时
发表于 2020-8-15 17:50:22 | 显示全部楼层 |阅读模式
1金钱
STM32F1精英板,寄存器开发,delay文件中的delay_ms函数相关理解:1、参数值nms最大范围计数值是怎么理解的,不理解nms < 0xffffff * 8 * 1000 / SYSCLK这个地方,为什么要这样计算?


代码如下:
//注意nms的范围
//SysTick->LOAD为24位寄存器,所以,最大延时为:nms < 0xffffff * 8 * 1000 / SYSCLK
//SYSCLK单位为Hz
//72M条件下,nms <= 1864
void delay_ms(u16 nms)
{                                     
        u32 temp;                  
        SysTick->LOAD=(u32)nms*fac_ms;                        //时间加载(SysTick->LOAD为24bit)
        SysTick->VAL =0x00;                                   //清空计数器
        SysTick->CTRL=0x01 ;                                  //开始倒数  
        do
        {
                temp=SysTick->CTRL;
        }while((temp&0x01)&&!(temp&(1<<16)));        //等待时间到达   
        SysTick->CTRL=0x00;                                       //关闭计数器
        SysTick->VAL =0X00;                                       //清空计数器                      
}

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

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 01:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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