概述:eeprom晶元型號為24c02,該晶元的總容量是256個位元組,該晶元通過iic匯流排與外部連線。
實驗功能:通過key1按鍵來控制24c02的寫入,通過另外乙個按鍵key0來控制24c02的讀取。
硬體電路:
iic配置**:
//初始化iic
void iic_init(void)
//產生iic起始訊號
void iic_start(void)
//產生iic停止訊號
void iic_stop(void)
//等待應答訊號到來
//返回值:1,接收應答失敗
// 0,接收應答成功
u8 iic_wait_ack(void)
} iic_scl=0;//時鐘輸出0
return 0;
} //產生ack應答
void iic_ack(void)
//不產生ack應答
void iic_nack(void)
//iic傳送乙個位元組
//返回從機有無應答
//1,有應答
//0,無應答
void iic_send_byte(u8 txd)
}
//讀1個位元組,ack=1時,傳送ack,ack=0,傳送nack
u8 iic_read_byte(unsigned char ack)
if (!ack)
iic_nack();//傳送nack
else
iic_ack(); //傳送ack
return receive;
}
以上**為iic驅動**,實現包括iic的初始化、iic開始、iic結束、ack、iic讀寫等功能,在其它函式裡面,只需要呼叫相關的iic函式就可以和外部iic器件通訊了,這裡並不侷限於24c02,該段**可以用在任何iic裝置上。
軟體模擬iic24c02協議實現
iic時序 if 1 void iic start void iic stop void void iic send byte u8 txd iic scl 0 delay ms 5 u8 iic wait ack delay ms 5 return 0 u8 iic read byte unsig...
IIC方式讀驅動AT24C16晶元
閒來無事,找了塊msp430的板子編寫了個iic驅動at24c16的程式。iic作是一種簡單,雙向,同步的二進位制匯流排,由sda資料線和scl時鐘線組成,所有接到iic匯流排上的各裝置的sda資料線都連線到匯流排的sda資料線上,用來進行資料的傳輸 所有接到iic匯流排上的各裝置的scl時鐘線都連...
IIC讀取AT24C256資料出現的問題及解析
stm32f407zgt6,at24c256 mdk5,gpiog pg2 scl,gpiog pg3 sda,屬於軟體模擬iic 在用邏輯分析儀分析時序時發現時序完全沒問題,如圖 向位址為7fffh的位址寫0x55 對位址為7fffh的位址讀資料 由圖可以看出寫並沒出現問題,問題出在讀資料時。讀時...