当前位置:网站首页>基于Cortex-M3、M4的精准延时(系统定时器SysTick延时,可用于STM32、ADuCM4050等)
基于Cortex-M3、M4的精准延时(系统定时器SysTick延时,可用于STM32、ADuCM4050等)
2022-06-25 04:01:00 【网易独家音乐人Mike Zhou】
基于Cortex-M3、M4的精准延时(系统定时器SysTick延时,可用于STM32、ADuCM4050等)
#include "ADuCM4050.h"
#include "stm32f4xx.h"
void delay_ms(unsigned int ms)
{
while(ms--)
{
SysTick->CTRL = 0; // Disable SysTick ¹Ø±Õϵͳ¶¨Ê±Æ÷
SysTick->LOAD = 52000000/1000-1; // Count from 255 to 0 (256 cycles) ÔØÈë¼ÆÊýÖµ ¶¨Ê±Æ÷´ÓÕâ¸öÖµ¿ªÊ¼¼ÆÊý
SysTick->VAL = 0; // Clear current value as well as count flag Çå¿Õ¼ÆÊýÖµµ½´ï0ºóµÄ±ê¼Ç
SysTick->CTRL = 5; // Enable SysTick timer with processor clock ʹÄÜ52MHzµÄϵͳ¶¨Ê±Æ÷
while ((SysTick->CTRL & 0x00010000)==0);// Wait until count flag is set µÈ´ý
}
SysTick->CTRL = 0; // Disable SysTick ¹Ø±Õϵͳ¶¨Ê±Æ÷
}
void delay_us(unsigned int us)
{
while(us--)
{
SysTick->CTRL = 0; // Disable SysTick ¹Ø±Õϵͳ¶¨Ê±Æ÷
SysTick->LOAD = 52000000/1000/1000-1; // Count from 255 to 0 (256 cycles) ÔØÈë¼ÆÊýÖµ ¶¨Ê±Æ÷´ÓÕâ¸öÖµ¿ªÊ¼¼ÆÊý
SysTick->VAL = 0; // Clear current value as well as count flag Çå¿Õ¼ÆÊýÖµµ½´ï0ºóµÄ±ê¼Ç
SysTick->CTRL = 5; // Enable SysTick timer with processor clock ʹÄÜ52MHzµÄϵͳ¶¨Ê±Æ÷
while ((SysTick->CTRL & 0x00010000)==0);// Wait until count flag is set µÈ´ý
}
SysTick->CTRL = 0; // Disable SysTick ¹Ø±Õϵͳ¶¨Ê±Æ÷
}
其中的52000000表示芯片的系统定时器频率 32系列一般为外部定时器频率的两倍
边栏推荐
- Codeforces Round #802 (Div. 2) C D
- Cannot import name 'escape' from 'jinja2' [solved successfully]
- Gbase 8s memory management
- 初识 Flutter 的绘图组件 — CustomPaint
- 我的IC之旅——资深芯片设计验证工程师成长——“胡”说IC工程师完美进阶
- OOP stack class template (template +ds)
- MySQL concept and operation (III)
- 机器学习深度学习——向量化
- 515. find the maximum value / Sword finger offer II 095 in each tree row Longest common subsequence
- CTF_ Web: Changan cup-2021 old but a little new & asuka
猜你喜欢
绝了!自动点赞,我用 PyAutoGUI!
js的sort()函数
CTF_ Web: Advanced questions of attack and defense world expert zone WP (9-14)
在 .NET 6 中使用 dotnet format 格式化代码
My IC journey - the growth of senior chip design verification engineers - "Hu" said that IC engineers are perfect and advanced
我的IC之旅——资深芯片设计验证工程师成长——“胡”说IC工程师完美进阶
三角形类(构造与析构)
为什么TCP握手刚刚好是3次呢?
2.0springmvc uses restful
【图像融合】基于matlab方向离散余弦变换和主成分分析图像融合【含Matlab源码 1907期】
随机推荐
CTF_ Variable coverage in web:php
台式电脑连不上wifi怎么办
三角形类(构造与析构)
Leader: who can use redis expired monitoring to close orders and get out of here!
GBASE 8s的多线程结构
Record the problem of C # print size once
ROS2/DDS/QoS/主题的记录
Classification of gbase 8s locks
Successfully solved: selenium common. exceptions. TimeoutException: Message: timeout: Timed out receiving message from
jsz中的join()
CTF_ Web:8-bit controllable character getshell
深度学习——几种学习类型
leetcode1221. 分割平衡字符串
OpenSea PHP开发包
CTF_ Web: Learn flask template injection (SSTI) from 0
Upgrade PHP to php7 The impact of X (2), the obsolescence of mcrypt decryption
How to apply for software
Gbase 8s stored procedure syntax structure
CTF_ Web: basic 12 questions WP of attack and defense world novice zone
Code scanning payment flow chart of Alipay payment function developed by PHP