本文以adc芯片ads1115为例, 简单讲解beaglebone black原装系统的i2c编程. 注意ads1115的SCL和SDA要上拉1k~10k的电阻, 不然无法通信.
直接上代码:
/*
ADDRESS_0 0x90 //ADDR PIN ->GND
ADDRESS_1 0x92 //ADDR PIN ->VDD
ADDRESS_2 0x94 //ADDR PIN ->SDA
ADDRESS_3 0x96 //ADDR PIN ->SCL
electrode ch1: ads1115 ADDR <--> GND 0x90
electrode ch2: ads1115 ADDR <--> SCL 0x96
electrode ch3: ads1115 ADDR <--> SDA 0x94
electrode ch4: ads1115 ADDR <--> GND 0x90
electrode ch5: ads1115 ADDR <--> SCL 0x96
electrode ch6: ads1115 ADDR <--> SDA 0x94
*/
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <linux/i2c-dev.h>
#include "ads1115.h"
unsigned char wbuf[4], rbuf[3];
unsigned char result_buf[3];
float volt;
/*
S_MUX_0 S_MUX_1 ads1115_channal
0 0 AIN0
0 1 AIN1
1