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 上機測試 注意:以下命令在開發板中執行。