初级会员

- 积分
- 176
- 金钱
- 176
- 注册时间
- 2013-12-23
- 在线时间
- 2 小时
|
发表于 2014-4-23 11:55:39
|
显示全部楼层
回复【楼主位】zhoujk:
---------------------------------
去我的博客吧。http://blog.sina.com.cn/u/1516438587
我测试过的。还不错。
#include 'stm32f10x.h'
#include 'delay.h'
//延时函数
//仿原子延时,不进入systic中断
//微秒延迟
void delay_us(u32 nus)
{ u32 temp;
SysTick->LOAD = 9*nus;
SysTick->VAL=0X00;//清空计数器
SysTick->CTRL=0X01;//使能,减到零是无动作,采用外部时钟源
do
{
temp=SysTick->CTRL;//读取当前倒计数值
}
while((temp&0x01)&&(!(temp&(1<<16))));//等待时间到达
SysTick->CTRL=0x00; //关闭计数器
SysTick->VAL =0X00; //清空计数器
}
//毫秒ms延时
void delay_ms(u16 nms)
{
u32 temp;
SysTick->LOAD = 9000*nms;
SysTick->VAL=0X00;//清空计数器
SysTick->CTRL=0X01;//使能,减到零是无动作,采用外部时钟源
do
{
temp=SysTick->CTRL;//读取当前倒计数值
} |
|