历史上的今天
今天是:2024年12月21日(星期六)
2021年12月21日 | STM32设置内核定时器延时us
2021-12-21 来源:eefocus
记录
1.查找系统嘀嗒定时器,根据
《STM32F4xx-Cortex_-M4内核参考手册.pdf》来查看寄存器,
并结合core_cm4.h。

系统定时器的时钟源=21Hz,完成21000000次计数的时候,就代表说1秒时间的到达。
21000000/1000000=21,也代表说只要完成21次计数就是1微秒的时间。SysTick->LOAD决定了延时的时间。
STTM32F407为例,用寄存器写延时函数:
需要注意的是把STM32f4xx.h文件中的HSE修改为8000000,参数因子PLL_M修改为8

时钟源来源于21 Hz
最大延时时间= 2*24 1 -21000000= 798.91ms.
时钟源来源于168 Hz
最大延时时间= 2^24 -168000000= 99.86ms.
如果要实现5000ms延时的话,可以对上面进行改造,500ms的整数倍延时都可以
void delay_us(uint32_t nus)
{
int m=0,n=0;
m = nus/500;
n = nus%500;
while(m--)
{
SysTick->LOAD = (168000000/8/1000000)*500;//执行10次500us=5s
SysTick->CTRL |= 1;
while(SysTick->CTRL &(1<<16)==0)//判断定时器标志位是否达到
SysTick->CTRL &= ~1;//使能定时器
}
if(n)
{
SysTick->LOAD = (168000000/8/1000000)*n;//执行10次500us=5s
SysTick->CTRL |= 1;
while(SysTick->CTRL &(1<<16)==0)//判断定时器标志位是否达到
SysTick->CTRL &= ~1;//使能定时器
}
}
如果固定使用168000000的系统时钟,可以用SystemCoreClock来代替168000000.
下一篇:STM32学习记录(1)
史海拾趣
|
星巴克的赚钱利器——Embedded for Point of Service 对于爱喝咖啡的人来说,星巴克(Starbucks)是一个耳熟能详的名字。星巴克是市场经济的宠儿之一。公司在在世界28个国家共建有5689家连锁店。自从10年前挂牌上市之后,销售额以每年平均20%的速度递增,利润额每年的平均增长幅度为30%。 那么,星 ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 03:35 编辑 开关电源07大赛刚刚做过,估计今年出题的概率很小了,不过相关的模块还是可能用得到的,有兴趣做电源类的可以看看~~~ [ 本帖最后由 open82977352 于 2009-8-4 09:53 编辑 ] … 查看全部问答> |
|
也是看到网上有个朋友的猜想,于是转载过来,也请大家谈谈五年后手机的样子? 现在的手机功能已是五花八门,可能手机行业内的人也不一定了解手机的全部功能。五年后或八年后的手机会是什么样的呢??? 就是一小电脑?答案:是,也不全是。准确的 ...… 查看全部问答> |
|
请不要告诉我在OS下读的方法。我要DOS的。要汇编的。 我看了AHCI的spec,只看到了发命令和读状态的register,可是不知道哪个register是读取那256个word的。请教大虾们。先谢了… 查看全部问答> |
|
要开题了,今天老板给了个题目,基于WindowsCE手持式IPTV测试仪88e1111PHY芯片驱动程序的设计与实现: 平时我们做驱动一般都是和ARM直连的或者是arm的外扩,但是在这个项目里面,这块PHY芯片和FPGA相连,然后FPGA和ARM通过爽口RAM相连,请问ARM应 ...… 查看全部问答> |
|
error C2061: syntax error : identifier 'IAuthenticate' EVC下想通过OLE DB访问数据库,可编译时报错:error C2061: syntax error : identifier \'IAuthenticate\' 请问是什么原因?… 查看全部问答> |
|
中嵌学院--FPGA (IC前端)Verilog 数字系统设计工程师培训班 中嵌学院 FPGA (IC前端)Verilog 数字系统设计工程师培训班 招生简章 中嵌学院(中嵌教育)再次以实干精神,以一流的高端技术服务于社会。中嵌学院(中嵌教育)联合北京神州龙芯IC设计公司、重庆EDA平台强势推出《FPGA (IC前端) Verilog 数 ...… 查看全部问答> |
|
工作在100M或133M,与DSP进行数据交换。 1,地址线和DSP之间的阻抗匹配拟使用串接电阻的方式。其中数据线是双向传输的,请问电阻是串在DSP端好呢还是RAM端好呢?若两端都加电阻除了令布线复杂外,还有没有其他隐患? 2,除了RAM之外,还会扩展fla ...… 查看全部问答> |
|
Cannot launch the remote executable 如何解决???大家帮帮忙吧 点击但步执行,出现下面对话框 Cannot launch the remote executable Error: File not found Win32 error code : 2 点击该对话框上的按钮:确定 则出现下面提示: Please check the remote exectuable path and file neme ...… 查看全部问答> |




