开发板下完成基于IIC协议的AHT20温湿度采集,Linux 开发板下读取数据

本文档展示了如何在Linux系统中通过I2C总线与AHT20温湿度传感器进行通信。代码包括了读写函数以及CRC8校验的实现,用于从传感器读取数据并显示温度和湿度。程序实现了不断读取并显示传感器数据的过程。

初始化等没有做,只写了读与写,能够正常读取数据

#include <stdio.h>
#include <linux/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <string.h>
#include <linux/i2c.h>
#include <linux/i2c-dev.h>

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#define AHT20_DEVICE_ADDR 0x38
#define DEFAULT_I2C_BUS "/dev/i2c-0"
// CRC校验类型:CRC8/MAXIM
//多项式:X8+X5+X4+1
// Poly:0011 0001  0x31
//高位放到后面就变成 1000 1100 0x8c
// C现实代码:
uint8_t Calc_CRC8(uint8_t *message, uint8_t Num)
{
    uint8_t i;
    uint8_t byte;
    uint8_t crc = 0xFF;
    for (byte = 0; byte < Num; byte++)
    {
        crc ^= (message[byte]);
        for (i = 8; i > 0; --i)
        {
            if (crc & 0x80)
                crc = (crc << 1) ^ 0x31;
            else
                crc = (crc << 1);
        }
    }
    return crc;
}
/*******************
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值