/*
* file: main.c
* author: colder
** created on 2016-11-17,5:02**/
#include
#include
#include "p30f6014.h"
unsigned long int i;
unsigned int writetable[16] = ;
unsigned int readtable[16];
unsigned int controlbytew = 0xa0;
unsigned int controlbyter = 0xa1;
unsigned int addressh = 0x00;
unsigned int addressl = 0x00;
void configei2ceeprom()
void pagewrite()
i2cconbits.pen = 1;
while(i2cstatbits.trstat == 1);
}void pageread()
i2cconbits.pen = 1;
while(i2cconbits.pen == 1);
}int main()
//***********************************
// i2crcv 接收暫存器
// i2ctrn 傳送暫存器
// i2cbrg 波特率發生器
// i2ccon 控制暫存器
// i2cstat 狀態暫存器
// i2cadd 位址暫存器
//************************************
// i2ccon下的重要標誌位:
// ackdt 應答資料位(工作於主控器件模式,適用於主控器件的接受過程),當軟體起動應答序列時將傳送該值
// acken 應答串行使能位(工作於主控器件,適用於主控器件接受過程).
// rcen 接收使能位(作為主控器件工作時)
// pen 停止條件使能位(作為主控器件工作時)
// sen 起動條件使能位-(起動後序列結束時,由硬體清0)
//************************************
// i2cstat下的重要標誌位:
// trstat 傳送狀態位 (1-主控器件正在傳送過程中)
// rbf 接收緩衝器滿狀態位(1-接收完成,i2crcv滿/0-接收未完成,i2crcv空)
// si2cif為從動器件中斷,在檢測到位址為從動器件位址時啟用中斷.下列事件會產生si2cif中斷:
//1.檢測到有效器件位址(包括廣播呼叫方式的位址)
//2.傳送資料的請求
//3.接收到資料
I2C驅動(2) 讀寫eeprom
include include include include include include include include include static unsigned short ignore static unsigned short normal addr 位址值是7位 改為0x60的話...
I2C外掛程式eeprom的讀寫
i2c簡介 i2c匯流排通訊是一種通訊協,用於連線微控制器及其外圍裝置,由兩根線組成,時鐘線sda和資料線scl。如圖所示,外掛程式裝置接到相應的線上就可以被i2c識別到,另外關於scl,sda以怎麼樣的波形去傳送訊息,以及裝置的應答波紋就不在詳細介紹了,這個對於不是直接寫驅動的開發人員來說沒有必要...
Uboot關於i2c和EEPROM的命令
在uboot命令列下輸入i2c並回車,會列印出i2c所有命令的使用方法 比如i2c dev會列印出目前掛載的i2c裝置 i2c md命令是從i2c裝置讀取資料,在這裡本人用的是beaglebone black,然後就選擇eeprom這個內建的i2c裝置進行讀取 要注意的是md命令的引數,第乙個是ch...