LINUXZ

10.6.2 AT24C02 访问方法 设备地址 从芯片手册上可以知道,AT24C02 的设备地址跟它的 A2、A1、A0 引脚有关: 图 10.36 AT24C02 设备地址引脚配置 294 / 577 打开 I2C 模块的原理图: 开发板配套网盘资料\04_开发板原理图\ 04_Extend_modules\通用模块\eeprom.zip\i2c_eeprom_module_v1.0.pdf 图 10.37 从原理图可知,A2A1A0 都是 0,所以 AT24C02 的设备地址是:0b1010000,即 0x50。 写数据 图 10.38 AT24C02 写数据时序 读数据 可以读 1 个字节,也可以连续读出多个字节。连续读多个字节时,芯片内部 的地址会自动累加。当地址到达存储空间最后一个地址时,会从 0 开始。 图 10.39 AT24C02 读数据时序 295 / 577 10.6.3 使用 I2C-Tools 的函数编程 I2C_Tools 上一小节已经讲解过,读者可自行学习编写程序。 10.6.4 编译 编译应用程序需要设置交叉编译工具链:vim ~/.bashrc export ARCH=arm export CROSS_COMPILE= arm-buildroot-linux-gnueabihfexport PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueab ihf_sdk-buildroot/bin 使用 I2C-Tools 的源码 01_all_series_quickstart\ 04_嵌入式 Linux 应用开发基础知识\source\15_I2C\01_at24c02_test 图 10.40 测试源码 编译 为 IMX6ULL 编译时,有如下错误: 图 10.41 IMX6ULL 编译 I2C 例程错误提示 这是因为 IMX6ULL 的工具链自带的 include 目录中,没有 smbus.h,需要 我们自己提供这个头文件,解决方法: ⚫ 提供头文件: 296 / 577 图 10.42 复制头文件 ⚫ 修改 Makefile 指定头文件目录 all: $(CROSS_COMPILE)gcc -I ./include -o at24c02_test at24c02_test.c i2cbusses.c smbus.c 10.6.5 上机测试 注意:以下命令在开发板中执行。

你可能感兴趣的:(linux)