NVIDIA TX2开发板的I2C(IIC)通信

本文详细介绍了如何使用NVIDIA TX2开发板与BMP280高度计进行I2C通信,包括硬件连接、设备地址查找以及Linux环境下的I2C代码框架解析。读者将学习到如何配置连接以及如何使用i2c-tools进行通信操作。
摘要由CSDN通过智能技术生成

本文主要讲述TX2开发板和BMP280高度计采用IIC通讯。

1、首先,要用杜邦线对两者进行连接,连接示意图如下:

对于高度计来说,SCL和SDA分别是IIC通讯的时钟线和地址线,CSB是高度计的激活位,必须连接3.3V的高电平,SDO是地址选择位,若SDO接地,则高度计的地址为0X76,若接3.3V的高电平,则高度计地址为0X77。

对于TX2开发板来说,我们选择J21模块,其中J21_1表示J21模块的1接口。J21_1和J21_17是3.3V的高电平,J21_6和J21_39是低电平(接地),J21_3是SDA接口,J21_5是SCL接口。

2、接下来是查找地址。

采用i2c-tools命令行工具

i2cdetect----用来查找所连接的设备的地址

i2cdump----用来读出特定地址中所有寄存器中的内容

i2cset--------对特定寄存器写入内容

i2cget-------从特定寄存器中读值

我们采用如下命令来查找当前设备的地址:

i2cdetect -y -r -a 1

其中-y表示无视交互问题,-r是SMBus read byte命令,-a是所有地址,0表示TX2开发板的i2c-1(TX2有好几个I2C接口)。

3、Linux环境中IIC代码框架讲解

#include <stdio.h> 
#include <stdint.h> 
#include <fcntl.h> 
#include <unistd.h>
#include <sys/ioctl.h> 
#include "i2c.h" 
#include <linux/i2c-dev.h>


#define BMP280_ADD 0x76     //高度计的地址
#define DIG_START 0x88      //温度补偿寄存器的起始地址
#define TEMP_START 0xFA     //温度测量寄存器的起始地址

#define DIGP_START 0X8E     //压强补偿寄存器的起始地址
#define PRESS_START 0XF7    //压强测量寄存器的起始地址 

#define CTRL_MEAS 0xF4      //选择模式控制寄存器的地址



#define TEMP_ONLY_NORMAL_MODE 0xFF  // 111 111 11    对寄存器的读写方式

int32_t t_fine=0;

//向特定的寄存器写值,用于设置读写方式
int writeReg(int pt, unsigned ch
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值