树莓派总线接口通信指南
1. I2C 通信
使用 i2cdump 命令时,寄存器 0x32 到 0x37 会显示加速度值,当传感器物理旋转且多次调用 i2cdump 命令时,这些值会发生变化。接下来需要编写程序代码来解释 DS3231 和 ADXL345 寄存器中的值。
1.1 C 语言实现 I2C 通信
第一个 C 程序示例读取 DS3231 RTC 的所有寄存器,并显示当前时间和温度。时间以二进制编码十进制(BCD)形式存储在寄存器 0x00 (秒)、 0x01 (分)和 0x02 (时)中。温度以十六进制形式存储在寄存器 0x11 (整数部分)和 0x12 的两个最高有效位(小数部分)中。
以下是示例代码:
#include<stdio.h>
#include<fcntl.h>
#include<sys/ioctl.h>
#include<linux/i2c.h>
#include<linux/i2c-dev.h>
#define BUFFER_SIZE 19 //0x00 to 0x13
// the time is in the registers in encoded decimal form
int bcdToDec(char b) {
超级会员免费看
订阅专栏 解锁全文
109

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



