树莓派DHT11传感器与Nunchuk鼠标项目实践
1. DHT11传感器数据读取
DHT11是一种常用的温湿度传感器,在树莓派上读取其数据需要一些技巧,因为要在非实时操作系统中进行实时信号测量。
1.1 计算时间差函数
为了计算两个时间点之间的纳秒差,使用 ns_diff() 函数,代码如下:
static inline long
ns_diff(struct timespec *t0,struct timespec *t1) {
int dsec = (int)(t1->tv_sec - t0->tv_sec);
long dns = t1->tv_nsec - t0->tv_nsec;
assert(dsec >= 0);
dns += dsec * 1000000000L;
return dns;
}
这个函数通过计算两个时间点的秒差和纳秒差,并将秒差转换为纳秒后相加,得到总的纳秒差。
1.2 主循环逻辑
主循环在 main() 函数中,主要步骤如下:
gpio_open();
gpio_configure_io(gpio_pin,Output);
gpio_write(gpio_pin,1);
for (;; ++reading) {
wait_ready();
gpio_write(gpio_p
超级会员免费看
订阅专栏 解锁全文
1671

被折叠的 条评论
为什么被折叠?



