历史上的今天
今天是:2025年02月14日(星期五)
2019年02月14日 | STM32外设驱动---SysTick精准延时
2019-02-14 来源:eefocus
单片机:STM32F103
库函数:V3.5
描述:利用系统内核文件core_cm3.c内部SysTick实现1ms,1us的精准延时,时钟72MHz,涉及中断服务SysTick_Handler的注册。
delay.h
#ifndef __DELAY_H__
#define __DELAY_H__
#include "stm32f10x.h"
extern void DelayMs(__IO uint32_t nTime);
extern void DelayUs(__IO uint32_t nTime);
//this function for systick handler function
extern void TimingDelay_Decrement(void);
#endif
delay.c
#include "delay.h"
static __IO uint32_t TimingDelay;
void DelayMs(__IO uint32_t nTime)
{
if (SysTick_Config(72000))
{
/* Capture error */
while (1);
}
TimingDelay = nTime;
while(TimingDelay != 0);
}
void DelayUs(__IO uint32_t nTime)
{
if (SysTick_Config(72))
{
/* Capture error */
while (1);
}
TimingDelay = nTime;
while(TimingDelay != 0);
}
void TimingDelay_Decrement(void)
{
if (TimingDelay != 0x00)
{
TimingDelay--;
}
}
中断服务stm32f10x_it.c
void SysTick_Handler(void)
{
TimingDelay_Decrement();
}
史海拾趣
|
如果同时掌握了arm和cpld会不会有所帮助? 来自EEWORLD合作群:arm linux fpga 嵌入0(49900581)群主:wangkj… 查看全部问答> |
|
能够记录机器里面播放的声音,或者使用麦克可以录音,但就是不能同时实现卡拉ok混音功能。怎么办,网上找到的补丁都用过了,就是不能用混音。 高手在哪里?… 查看全部问答> |
|
我的是一个协议层驱动,有个疑问就是 A.使用CreateService,OpenService,QueryServiceStatus及StartService等一系列API安装起来的驱动 B.使用Inf文件及INetCfg的COM接口安装的驱动 问题是 1.这两种方式有什么不同? 2.为什么A安装后\"本地连接\" ...… 查看全部问答> |
|
我现在做图片解码显示,用的是ze的片子,我开辟了的一个大的数组在sram里,请放心这个数组确实在外部,我去过地址查看,0x6800xxx位置,现在的问题是,我如果把这个数组开辟的小一点,比如几百字节,lcd显示正常,开辟大来人比如几百k &n ...… 查看全部问答> |
|
开关电源组件选择 开关电源组件选择 (Switch-Power-Supply-Component-Selection) 开关电源深入浅出之设计选型篇,作为能量转换的装置-电源,此篇告诉你想了解的储能元器件类型和如何选择,理解并能优化选择电容和电感 课程大纲: 拓扑敏感回路 ...… 查看全部问答> |




