野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9211|回复: 5

DHT11 以及 延时函数的问题!!!!

[复制链接]
发表于 2017-11-30 15:23:46 | 显示全部楼层 |阅读模式
从网上找的资料写了一个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;
}

回复

使用道具 举报

发表于 2017-11-30 15:53:14 | 显示全部楼层
可能没用中断的模式配置有问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-30 18:05:28 | 显示全部楼层
不太懂您的意思,可以详细说说吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-30 18:06:15 | 显示全部楼层
随风 发表于 2017-11-30 15:53
可能没用中断的模式配置有问题

不太懂您的意思,可以详细说说吗?
回复 支持 反对

使用道具 举报

发表于 2017-12-7 14:58:06 | 显示全部楼层
个人愚见,会不会是在延时函数里调用了中断,起到了中断的效果
回复 支持 反对

使用道具 举报

发表于 2017-12-7 15:27:57 | 显示全部楼层
无法正常运行应该是软件延时不准导致的通信失败吧,,,,
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-4-28 12:16 , Processed in 0.029999 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表