发新帖本帖赏金 3.00元(功能说明)我要提问
返回列表
打印
[STM32F4]

【F446RE开发板试用】定时器输入捕获读取DHT11

[复制链接]
1292|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
上次使用延时的方法读取DHT11,今天使用定时器TIM2输入捕获的方式读取DHT11。
硬件使用TIM2的CH0通道(PA0)捕获DHT11输出的数据,判断电平时间来判断数据0还是1,中断方式。
同时使用PA1接到DHT11的数据引脚,用于输出启动测试信号,18ms的低电平。

=====================================================

先上效果吧:

下面简单说一下程序实现:
1、首先定义用到的变量:

2、
主函数,每10s启动一次DHT11数据读取,然后判断是否读正确,正确则输出数据:

3、
定时器TIM2的CH1通道输入捕获回调函数,每次进入,首先看是否位第0次进入:

每次捕获到边沿后,判断时间,来判断数据位是1还是0,然后写入变量保存:

4、定时器TIM2的溢出中断,用于判断DHT11是否有超时:

5、启动一次测试,输出18ms的低电平,然后启动定时器TIM2的CH1通道输入捕获功能,中断方式:

6、校验DHT11的数据是否正确:


7、还是上主程序压缩文件:
main.zip (3.9 KB)

打赏榜单

21ic小喇叭 打赏了 3.00 元 2015-10-26

沙发
jjjkkk00| | 2016-5-22 17:12 | 只看该作者

使用特权

评论回复
发新帖 本帖赏金 3.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

90

帖子

0

粉丝