stm32之传感器DHT11.zip


stm32开发之传感器DHT11,读取温度和湿度
,包括proteus仿真程序以及keil程序(没什么好说的了)
资源截图
代码片段和文件信息
#include //单片机工程可以不用

#include //这个头文件一定要包含 ---这个头文件官方帮我们定义好了所有寄存器的地址


#define LCD_RS GPIO_Pin_0
#define LCD_RW GPIO_Pin_1
#define LCD_EA GPIO_Pin_2

int Tem = 8;
int Hum;

unsigned char table[]=“Tem 00 Hum 00“;

/*----systick定时器模块,用于精准延时------------------------------------------------------------------*/

void systick_init(void)
{
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);

}

void delay_us(unsigned int us)
{
unsigned int set_time = us*84;//得到设定值  us*84<16777215   us<199728
unsigned int tmp;

//初始化
SysTick->LOAD = set_time;//把当前获取需要的延时的时间设定值丢给LOAD寄存器 24bit
SysTick->VAL  = 0;//先清空计数器的当前值  写0  之后再开启定时器后 会将LOAD的设定值自动装载进VAL

//开滴答定时器
SysTick->CTRL |= 0x01;//给最低位1 开滴答定时器

while(1)
{
tmp = SysTick->CTRL;//读取
//只要该条件为非零 就表示已经递减计数到0
if(tmp & 0x10000)
{
break;//跳出

}
}
SysTick->VAL = 0;//把计数值清零
SysTick->CTRL &= (~0x01) ;//关闭定时器   0xFFFFFFFE 1110
//0|任何位不会改变该位
//1|任何位都会变为1
}

void delay_ms(unsigned int ms)
{
unsigned int set_time = ms*84000;//得到设定值  us*84000<16777215   us<199.728  最高这一次延时
unsigned int tmp;

//初始化
SysTick->LOAD = set_time;//把当前获取需要的延时的时间设定值丢给LOAD寄存器 24bit
SysTick->VAL  = 0;//先清空计数器的当前值  写0  之后再开启定时器后 会将LOAD的设定值自动装载进VAL

//开滴答定时器
SysTick->CTRL |= 0x01;//给最低位1 开滴答定时器

while(1)
{
tmp = SysTick->CTRL;//读取
//只要该条件为非零 就表示已经递减计数到0
if(tmp & 0x10000)
{
break;//跳出

}
}
SysTick->VAL = 0;//把计数值清零
SysTick->CTRL &= (~0x01) ;//关闭定时器   0xFFFFFFFE 1110
//0|任何位不会改变该位
//1|任何位都会变为1
}

void delay_s(unsigned int s)
{

while(--s)
{
delay_ms(100);
delay_ms(100);
delay_ms(100);
delay_ms(100);
delay_ms(100);
delay_ms(100);
delay_ms(100);
delay_ms(100);
delay_ms(100);
delay_ms(100);
}

}









/*----DHT11传感器模块,读取温度和湿度------------------------------------------------------------------*/

void GPIO_INIT(void)
{

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC ENABLE);

GPIO_InitTypeDef aaa;

aaa.GPIO_Pin = GPIO_Pin_All;//引脚号选择  PA0  也要按照官方的填法  怎么填 去头文件 stm32f4xx_gpio.h
aaa.GPIO_Mode = GPIO_Mode_OUT;//输出模式
aaa.GPIO_OType =  GPIO_OType_PP;//推挽输出
aaa.GPIO_Speed = GPIO_High_Speed;//高速
//写入
GPIO_Init(GPIOC&aaa);//&
//控制引脚
GPIO_WriteBit(GPIOC GPIO_Pin_All  1);


}


//初始化PD0为输出模式
void DATAPin_ModeOut(void)
{
GPIO_InitTypeDef  aaa;//定义一个结构体变量
//1、使能指定的GPIO模块时钟--默认复位后开机时钟不会全部提供给各个模块 使用时需要自己开启
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD ENABLE);

//2、初始化引脚
aaa.GPIO_Pin = GPIO_Pin_0;//引脚号选择  PA0  也要按照官方的填法  怎么填 去头文件 stm32f4xx_gpio.h
aaa.GPIO_Mode = GPIO_Mode_OUT;//输出模式
aaa.GPIO_OType =  GPIO_OType_PP;//推挽输出 低功率设备驱动
aaa.GPIO_PuPd  = GPIO_PuPd_UP;//内部上拉使能
aaa.GPIO_Speed = GPIO_High_Speed;//高速
GPIO_Init(GPIOD&aaa);//&
}



//初始化PD0为输入模式
void DATAPin_ModeIn(void)
{
GPIO_InitTypeDef  aaa;//定义一个结构体变量
//1、使能指定的GPIO模块时钟--默认复位后开机时钟不会全部提供给各个模块 使用时需要自己开启
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_G

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2020-03-22 16:05  Keil5
     文件           0  2020-03-10 11:37  Keil5LED.uvmpw
     文件       94435  2020-03-22 16:05  Keil5LED1.uvguix.摄心为戒
     文件       20251  2020-03-22 14:04  Keil5LED1.uvoptx
     文件       19212  2020-03-14 15:46  Keil5LED1.uvprojx
     目录           0  2020-03-18 11:11  Keil5Listings
     文件       73729  2020-03-22 14:06  Keil5ListingsLED1.map
     文件       68267  2020-03-22 13:55  Keil5Listingsstartup_stm32f401xx.lst
     文件        7505  2020-03-23 16:28  Keil5main.c
     目录           0  2020-03-22 14:06  Keil5objects
     文件      344648  2020-03-22 13:55  Keil5objectsexti_stm32f4xx.crf
     文件        1939  2020-03-22 13:55  Keil5objectsexti_stm32f4xx.d
     文件      342960  2020-03-22 13:55  Keil5objectsexti_stm32f4xx.o
     文件      263936  2020-03-22 14:06  Keil5objectsLED1.axf
     文件        4116  2020-03-22 14:06  Keil5objectsLED1.build_log.htm
     文件        6290  2020-03-22 14:06  Keil5objectsLED1.hex
     文件          21  2020-03-22 14:09  Keil5objectsLED1.hex.asm
     文件       46133  2020-03-22 14:06  Keil5objectsLED1.htm
     文件         520  2020-03-22 14:06  Keil5objectsLED1.lnp
     文件         494  2020-03-11 22:27  Keil5objectsLED1.sct
     文件       16623  2020-03-22 14:06  Keil5objectsLED1_Target 1.dep
     文件      312876  2020-03-22 14:06  Keil5objectsmain.crf
     文件        1522  2020-03-22 14:06  Keil5objectsmain.d
     文件      332280  2020-03-22 14:06  Keil5objectsmain.o
     文件      306826  2020-03-22 13:55  Keil5objectsmisc.crf
     文件        1631  2020-03-22 13:55  Keil5objectsmisc.d
     文件      319680  2020-03-22 13:55  Keil5objectsmisc.o
     文件          79  2020-03-22 13:55  Keil5objectsstartup_stm32f401xx.d
     文件        6920  2020-03-22 13:55  Keil5objectsstartup_stm32f401xx.o
     文件      307293  2020-03-22 13:55  Keil5objectsstm32f4xx_exti.crf
     文件        1831  2020-03-22 13:55  Keil5objectsstm32f4xx_exti.d
............此处省略27个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)