新手入门
- 积分
- 13
- 金钱
- 13
- 注册时间
- 2017-11-30
- 在线时间
- 0 小时
|
1金钱
从网上找的资料写了一个dht11的程序,一直无法正常运行,和同学讨论后把用systick写的延时程序改成了systick中断的形式就成功了!但是依旧无法理解其中的道理,并且网上很多没有采用中断的例子也有很多,求大神解惑!!
附延时函数代码:
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;
}
void Delay_ms(u16 nms)
{
u32 temp;
SysTick->LOAD = 9000*nms;
SysTick->VAL=0X00;
SysTick->CTRL=0X01;
do
{
temp=SysTick->CTRL;
}while((temp&0x01)&&(!(temp&(1<<16))));
SysTick->CTRL=0x00;
SysTick->VAL =0X00;
}
|
|