資源簡介
AT24c02驅動編寫,stm32IO口模擬模擬IIC時序,實現寫入數據與讀出數據功能

代碼片段和文件信息
#include?“AT24CXX.h“
/*******************************************************************************
*?函?數?名?????????:?AT24Cxx_ReadOneByte
*?函數功能 ???:?24c02讀一個字節地址??數據 ???
*?輸????入?????????:?addr
*?輸????出?????????:?返回值temp
*******************************************************************************/
u8?AT24Cxx_ReadOneByte(u16?addr)
{
u8?temp=0;
I2C_Start();
if(EE_TYPE>AT24C16)
{
I2C_Send_Byte(0xA0);
I2C_Wait_Ack();
I2C_Send_Byte(addr>>8); //發送數據地址高位
}
else
{
???I2C_Send_Byte(0xA0+((addr/256)<<1));//器件地址+數據地址
}
I2C_Wait_Ack();
I2C_Send_Byte(addr%256);//雙字節是數據地址低位
//單字節是數據地址低位
I2C_Wait_Ack();
I2C_Start();
I2C_Send_Byte(0xA1);
I2C_Wait_Ack();
temp=I2C_Read_Byte(0);?//??0???代表?NACK
I2C_NAck();
I2C_Stop();
return?temp;
}
/*******************************************************************************
*?函?數?名?????????:?AT24Cxx_ReadTwoByte
*?函數功能 ???:?24c02讀2個字節地址 數據??
*?輸????入?????????:?addr
*?輸????出?????????:?返回值temp
*******************************************************************************/
u16?AT24Cxx_ReadTwoByte(u16?addr)
{
u16?temp=0;
I2C_Start();
if(EE_TYPE>AT24C16)
{
I2C_Send_Byte(0xA0);
I2C_Wait_Ack();
I2C_Send_Byte(addr>>8); //發送數據地址高位
}
else
{
???I2C_Send_Byte(0xA0+((addr/256)<<1));//器件地址+數據地址
}
I2C_Wait_Ack();
I2C_Send_Byte(addr%256);//雙字節是數據地址低位
//單字節是數據地址低位
I2C_Wait_Ack();
I2C_Start();
I2C_Send_Byte(0xA1);
I2C_Wait_Ack();
temp=I2C_Read_Byte(1);?//??1???代表?ACK
temp<<=8;
temp|=I2C_Read_Byte(0);?//??0??代表?NACK
I2C_Stop();
return?temp;
}
/*******************************************************************************
*?函?數?名?????????:?AT24Cxx_WriteOneByte
*?函數功能 ???:?24c02寫一個字節地址??數據 ???
*?輸????入?????????:?addr??dt
*?輸????出?????????:?無
*******************************************************************************/
void?AT24Cxx_WriteOneByte(u16?addru8?dt)
{
I2C_Start();
if(EE_TYPE>AT24C16)
{
I2C_Send_Byte(0xA0);
I2C_Wait_Ack();
I2C_Send_Byte(addr>>8); //發送數據地址高位
}
else
{
???I2C_Send_Byte(0xA0+((addr/256)<<1));//器件地址+數據地址
}
I2C_Wait_Ack();
I2C_Send_Byte(addr%256);//雙字節是數據地址低位
//單字節是數據地址低位
I2C_Wait_Ack();
I2C_Send_Byte(dt);
I2C_Wait_Ack();
I2C_Stop();
delay_ms(10);
}
/*******************************************************************************
*?函?數?名?????????:?AT24Cxx_WriteTwoByte
*?函數功能 ???:?24c02寫2個字節地址??數據 ???
*?輸????入?????????:?addr??dt
*?輸????出?????????:?無
*******************************************************************************/
void?AT24Cxx_WriteTwoByte(u16?addru16?dt)
{
I2C_Start();
if(EE_TYPE>AT24C16)
{
I2C_Send_Byte(0xA0);
I2C_Wait_Ack();
I2C_Send_Byte(addr>>8); //發送數據地址高位
}
else
{
???I2C_Send_Byte(0xA0+((addr/256)<<1));//器件地址+數據地址
}
I2C_Wait_Ack();
I2C_Send_Byte(addr%256);//雙字節是數據地址低位
//單字節是數據地址低位
I2C_Wait_Ack();
I2C
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-03-03?07:59??實驗13:IIC(24C02)\
?????文件?????2584493??2016-05-10?15:19??實驗13:IIC(24C02)\24c02中文官方手冊.pdf
?????文件?????1448146??2016-05-10?15:19??實驗13:IIC(24C02)\i2c總線協議(中文版pdf).pdf
?????文件??????167165??2016-05-10?15:18??實驗13:IIC(24C02)\串口助手顯示.jpg
?????文件??????557577??2016-05-10?15:19??實驗13:IIC(24C02)\實驗13:IIC(24C02).pdf
?????文件?????????595??2016-05-10?15:18??實驗13:IIC(24C02)\實驗說明.txt
?????目錄???????????0??2017-03-03?07:59??實驗13:IIC(24C02)\工程模板\
?????文件???????59715??2016-05-10?15:37??實驗13:IIC(24C02)\工程模板\1.uvopt
?????文件?????????654??2016-05-10?15:37??實驗13:IIC(24C02)\工程模板\1_Target?1.dep
?????目錄???????????0??2017-03-03?07:59??實驗13:IIC(24C02)\工程模板\APP\
?????目錄???????????0??2017-03-03?07:59??實驗13:IIC(24C02)\工程模板\APP\AT24Cxx\
?????文件????????3357??2016-05-10?19:22??實驗13:IIC(24C02)\工程模板\APP\AT24Cxx\AT24CXX.c
?????文件?????????510??2016-05-10?19:22??實驗13:IIC(24C02)\工程模板\APP\AT24Cxx\AT24CXX.h
?????目錄???????????0??2017-03-03?07:59??實驗13:IIC(24C02)\工程模板\APP\beep\
?????文件????????1879??2016-05-10?19:22??實驗13:IIC(24C02)\工程模板\APP\beep\beep.c
?????文件?????????194??2016-05-10?19:22??實驗13:IIC(24C02)\工程模板\APP\beep\beep.h
?????目錄???????????0??2017-03-03?07:59??實驗13:IIC(24C02)\工程模板\APP\exit\
?????文件????????1581??2016-05-10?19:22??實驗13:IIC(24C02)\工程模板\APP\exit\exti.c
?????文件?????????151??2016-05-10?19:22??實驗13:IIC(24C02)\工程模板\APP\exit\exti.h
?????目錄???????????0??2017-03-03?07:59??實驗13:IIC(24C02)\工程模板\APP\IIC(24C02)\
?????文件????????3329??2016-05-10?19:22??實驗13:IIC(24C02)\工程模板\APP\IIC(24C02)\iic.c
?????文件?????????725??2016-05-10?19:22??實驗13:IIC(24C02)\工程模板\APP\IIC(24C02)\iic.h
?????目錄???????????0??2017-03-03?07:59??實驗13:IIC(24C02)\工程模板\APP\key\
?????文件????????1095??2016-05-10?19:22??實驗13:IIC(24C02)\工程模板\APP\key\key.c
?????文件?????????451??2016-05-10?19:22??實驗13:IIC(24C02)\工程模板\APP\key\key.h
?????目錄???????????0??2017-03-03?07:59??實驗13:IIC(24C02)\工程模板\APP\LED\
?????文件????????2342??2016-05-10?19:22??實驗13:IIC(24C02)\工程模板\APP\LED\led.c
?????文件?????????182??2016-05-10?19:22??實驗13:IIC(24C02)\工程模板\APP\LED\led.h
?????目錄???????????0??2017-03-03?07:59??實驗13:IIC(24C02)\工程模板\APP\printf\
?????文件????????2082??2016-05-10?19:22??實驗13:IIC(24C02)\工程模板\APP\printf\printf.c
?????文件?????????147??2016-05-10?19:22??實驗13:IIC(24C02)\工程模板\APP\printf\printf.h
............此處省略241個文件信息
- 上一篇:數據庫課程設計-----英語學習助手
- 下一篇:三星手機 自帶的所有ogg聲音文件
評論
共有 條評論