【星汇极客】STM32 HAL库各种模块开发之DHT11模块

前言

        本人是一名嵌入式学习者,在大学期间也参加了不少的竞赛并获奖,包括:江苏省电子设计竞赛省一、睿抗机器人国二、中国高校智能机器人国二、嵌入式设计竞赛国三、光电设计竞赛国三、节能减排竞赛国三等

        暑假的时候参加了太多的比赛,作为队长要写代码、材料文档,几乎是比完赛过几天又要去其他比赛了,前段时间都在休息,现在才有时间来记录一下。后面会经常写一下博客分享一下,如果想了解其他项目、技术,可以去B站搜:星汇极客,主页链接:星汇极客B站

此外,还开发了个人网站,里面有一些资料和源码供下载:星汇极客

模块之DHT11模块

(1)CubeMX配置定时器2,在keil写us计时代码

串口1输出数据

(2)在keil添加dht11.c、dht11.h

在tim.h里写计时us代码

void delay_us(uint16_t us){
	uint16_t differ = 0xffff-us-5;				
	__HAL_TIM_SET_COUNTER(&htim2,differ);	//设定TIM7计数器起始值
	HAL_TIM_Base_Start(&htim2);		//启动定时器	
	
	while(differ < 0xffff-5){	//判断
		differ = __HAL_TIM_GET_COUNTER(&htim2);		//查询计数器的计数值
	}
	HAL_TIM_Base_Stop(&htim2);
}

main.c

//fput重定向串口1
	int fputc(int ch, FILE *f)
	{      
		HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);   
		return ch;
	}
	
	
//温度
	char tp[15] = "";
	//湿度
	char hd[15] = "";
	
	float tpData;
	float hdData;
	
	uint16_t temperature;
	uint16_t humidity;

 /* USER CODE BEGIN 2 */
	while(DHT11_Init())
	{
		printf("DHT11 Checked failed!!!\r\n");
		HAL_Delay(500);
	}
	printf("DHT11 Checked Sucess!!!\r\n");
	
	
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
		//温湿度读取
		DHT11_Read_Data(&temperature,&humidity);
		
		//温湿度数据
		printf("DHT11 Temperature = %d.%d degree\r\n",temperature>>8,temperature&0xff);
		printf("DHT11 Humidity = %d.%d%%\r\n",humidity>>8,humidity&0xff);
		
		HAL_Delay(1000);
		
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */

结,关注下方获取源码、资料:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星汇极客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值