娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

1、 時(shí)鐘和數(shù)據(jù)的傳輸:開始和停止條件,數(shù)據(jù)在SCL的高電平期間有效,在SCL的低電平期間改變。

2、 開始條件:在SCL高電平期間,SDA產(chǎn)生一個(gè)下降沿

3、 停止條件:在SCL高電平期間,SDA產(chǎn)生一個(gè)上升沿

4、 應(yīng)答:成功接收到數(shù)據(jù)(地址和數(shù)據(jù)),產(chǎn)生一個(gè)應(yīng)答位(在第9個(gè)時(shí)鐘周期,將SDA拉低)

下面是源程序:原理上說,下面程序再移植時(shí),只要將數(shù)據(jù)類型變化,可以應(yīng)用到任何處理器

AT24c02.h

#ifndef __24CXX_H
#define __24CXX_H
#include "i2c.h"

/***************************************************************
- 說明:以下參數(shù)是AT24Cxx的尋址空間,C0x ,X 表示XK 如C01表示1K
- 127表示2^7 1Kbit/8=128Byte 128字節(jié)
- 255表示2^8 2Kbit/8=256Byte 256字節(jié) 
- 512表示2^9 4Kbit/8=512Byte 512字節(jié) 

***************************************************************/
#define AT24C01 127
#define AT24C02 255
#define AT24C04 511
#define AT24C08 1023
#define AT24C16 2047
#define AT24C32 4095
#define AT24C64 8191
#define AT24C128 16383
#define AT24C256 32767 
/**************************************************************
--板子使用的是24c02,所以定義EE_TYPE為AT24C02
**************************************************************/
#define EE_TYPE AT24C02

/**************************************************************
--EEPROM的操作函數(shù)
--24CXX驅(qū)動(dòng)函數(shù)
**************************************************************/

u8 AT24CXX_ReadOneByte(u16 ReadAddr); //指定地址讀取一個(gè)字節(jié)
void AT24CXX_WriteOneByte(u16 WriteAddr,u8 DataToWrite); //指定地址寫入一個(gè)字節(jié)

void AT24CXX_WriteLenByte(u16 WriteAddr,u32 DataToWrite,u8 Len);//指定地址開始寫入指定長度的數(shù)據(jù)
u32 AT24CXX_ReadLenByte(u16 ReadAddr,u8 Len); //指定地址開始讀取指定長度數(shù)據(jù)

void AT24CXX_Write(u16 WriteAddr,u8 *pBuffer,u16 NumToWrite); //從指定地址開始寫入指定長度的數(shù)據(jù)
void AT24CXX_Read(u16 ReadAddr,u8 *pBuffer,u16 NumToRead); //從指定地址開始讀出指定長度的數(shù)據(jù)

u8 AT24CXX_Check(void); //檢查器件
void AT24CXX_Init(void); //初始化IIC
#endif

-----------------------------------------------------------------------------------------------------------------------------------------

AT24c02.c

#include "at24cxx.h" 
#include "delay.h"
/***************************************************************************
- 功能描述:STM32f103 EEPORM初始化函數(shù)
- 隸屬模塊:STM32 EEPROM操作
- 函數(shù)屬性:外部,使用戶使用
- 參數(shù)說明:無
- 返回說明:無
- 函數(shù)功能:實(shí)現(xiàn)I2C的初始化。
***************************************************************************/
void AT24CXX_Init(void)
{
IIC_Init();
}
/***************************************************************************
- 功能描述:STM32f103 任意讀取EEPORM一個(gè)字節(jié)的函數(shù)
- 隸屬模塊:STM32 EEPROM操作
- 函數(shù)屬性:外部,使用戶使用
- 參數(shù)說明:ReadAddr為所讀取EEPROM字節(jié)的地址
- 返回說明:無
- 函數(shù)功能:返回所要讀取的地址的數(shù)據(jù)
- 函數(shù)說明:要任意讀取EEPROM地址中的一個(gè)字節(jié)的步驟為:
(1)發(fā)送開始START信號(hào)
(2)發(fā)送器件器件地址,最后一位為0
(3)從機(jī)檢測(cè)到主機(jī)發(fā)送的地址與自己的地址相同時(shí)發(fā)送一個(gè)應(yīng)答信號(hào)ACK,而主機(jī)等待ACK
(4)發(fā)送待操作的字節(jié)地址
(5)等待一個(gè)ACK
(6)重新發(fā)送START起始信號(hào)
(7)發(fā)送7位器件地址,最后一位為1,表示讀EEPROM。
(8)等待ACK,讀取一個(gè)字節(jié)。
(9)I2C停止,返回讀取的數(shù)據(jù)。
這里注意AT24C0x系列的地址有兩字節(jié)和一字節(jié)之分,這里把兩種情況都包含了
***************************************************************************/
u8 AT24CXX_ReadOneByte(u16 ReadAddr) 

u8 temp=0; 
IIC_Start(); 
if(EE_TYPE>AT24C16)
{
IIC_Send_Byte(0XA0); //發(fā)送寫命令
IIC_Wait_Ack();
IIC_Send_Byte(ReadAddr>>8);//發(fā)送高地址
IIC_Wait_Ack(); 
}
else 
IIC_Send_Byte(0XA0+((ReadAddr/256)<<1)); //發(fā)送器件地址0XA0,寫數(shù)據(jù)

IIC_Wait_Ack();

IIC_Send_Byte(ReadAddr%256); //發(fā)送低地址
IIC_Wait_Ack(); 
IIC_Start(); 
IIC_Send_Byte(0XA1); //進(jìn)入接收模式 
IIC_Wait_Ack(); 
temp=IIC_Read_Byte(0); 
IIC_Stop();//產(chǎn)生一個(gè)停止條件 
return temp;
}

/***************************************************************************
- 功能描述:STM32f103 任意寫EEPORM一個(gè)字節(jié)的函數(shù)
- 隸屬模塊:STM32 EEPROM操作
- 函數(shù)屬性:外部,使用戶使用
- 參數(shù)說明:WriteAddr :寫入數(shù)據(jù)的目的地址 ,DataToWrite:要寫入的數(shù)據(jù)
- 返回說明:無
- 函數(shù)功能:返回所要讀取的地址的數(shù)據(jù)
- 函數(shù)說明:要任意讀取EEPROM地址中的一個(gè)字節(jié)的步驟為:
(1)發(fā)送開始START信號(hào)
(2)發(fā)送器件器件地址,最后一位為0
(3)從機(jī)檢測(cè)到主機(jī)發(fā)送的地址與自己的地址相同時(shí)發(fā)送一個(gè)應(yīng)答信號(hào)ACK
(4)發(fā)送待操作的字節(jié)地址
(5)等待一個(gè)ACK
(6)發(fā)送字節(jié)數(shù)據(jù)
(7)等待一個(gè)ACK
(8)I2C停止,返回讀取的數(shù)據(jù)。
***************************************************************************/
void AT24CXX_WriteOneByte(u16 WriteAddr,u8 DataToWrite)

IIC_Start(); 
if(EE_TYPE>AT24C16)
{
IIC_Send_Byte(0XA0); //發(fā)送寫命令
IIC_Wait_Ack();
IIC_Send_Byte(WriteAddr>>8);//發(fā)送高地址
IIC_Wait_Ack(); 
}
else
{
IIC_Send_Byte(0XA0+((WriteAddr/256)<<1)); //發(fā)送器件地址0XA0,寫數(shù)據(jù) 

IIC_Wait_Ack(); 
IIC_Send_Byte(WriteAddr%256); //發(fā)送低地址
IIC_Wait_Ack(); 
IIC_Send_Byte(DataToWrite); //發(fā)送字節(jié) 
IIC_Wait_Ack(); 
IIC_Stop();//產(chǎn)生一個(gè)停止條件 
delay_ms(10); 
}


/***************************************************************************
- 功能描述:STM32f103 任意寫EEPORM指定地址開始寫入長度為Len的數(shù)據(jù)
- 隸屬模塊:STM32 EEPROM操作
- 函數(shù)屬性:外部,使用戶使用
- 參數(shù)說明:WriteAddr :寫入數(shù)據(jù)的目的地址 ,DataToWrite:數(shù)據(jù)數(shù)組首地址
Len:要寫入數(shù)據(jù)的長度2,4
- 返回說明:無
- 函數(shù)功能:無
- 函數(shù)說明:就是調(diào)用len次 AT24CXX_WriteOneByte函數(shù),該函數(shù)用于寫入16bit或者32bit的數(shù)據(jù).
***************************************************************************/
void AT24CXX_WriteLenByte(u16 WriteAddr,u32 DataToWrite,u8 Len)

u8 t;
for(t=0;t{
AT24CXX_WriteOneByte(WriteAddr+t,(DataToWrite>>(8*t))&0xff);

}
/***************************************************************************
- 功能描述:STM32f103 任意寫EEPORM指定地址開始讀出長度為Len的數(shù)據(jù)
- 隸屬模塊:STM32 EEPROM操作
- 函數(shù)屬性:外部,使用戶使用
- 參數(shù)說明:ReadAddr :開始讀出的地址
Len:要寫入數(shù)據(jù)的長度2,4
- 返回說明:無
- 函數(shù)功能:無
- 函數(shù)說明:就是調(diào)用len次AT24CXX_ReadOneByte函數(shù),該函數(shù)用于讀出16bit或者32bit的數(shù)據(jù).
***************************************************************************/
u32 AT24CXX_ReadLenByte(u16 ReadAddr,u8 Len)

u8 t;
u32 temp=0;
for(t=0;t{
temp<<=8;
temp+=AT24CXX_ReadOneByte(ReadAddr+Len-t-1); 
}
return temp; 
}
/***************************************************************************
- 功能描述:STM32f103檢查AT24CXX是否正常
- 隸屬模塊:STM32 EEPROM操作
- 函數(shù)屬性:外部,使用戶使用
- 參數(shù)說明:無
- 返回說明:返回1:檢測(cè)失敗 返回0:檢測(cè)成功
- 函數(shù)功能:無
- 函數(shù)說明:這里用了24XX的最后一個(gè)地址(255)來存儲(chǔ)標(biāo)志字. 返回0表示正常、返回1錯(cuò)誤
***************************************************************************/
u8 AT24CXX_Check(void)
{
u8 temp;
temp=AT24CXX_ReadOneByte(255);//避免每次開機(jī)都寫AT24CXX 
if(temp==0X55)
return 0; 
else//排除第一次初始化的情況
{
AT24CXX_WriteOneByte(255,0X55);
temp=AT24CXX_ReadOneByte(255); 
if(temp==0X55)
return 0;
}
return 1; 
}

/***************************************************************************
- 功能描述:STM32f103在AT24CXX里面的指定地址開始讀出指定個(gè)數(shù)的數(shù)據(jù)
- 隸屬模塊:STM32 EEPROM操作
- 函數(shù)屬性:外部,使用戶使用
- 參數(shù)說明:ReadAddr :開始讀出的地址 對(duì)24c02為0~255
pBuffer :數(shù)據(jù)數(shù)組首地址
NumToRead:要讀出數(shù)據(jù)的個(gè)數(shù)
- 返回說明:無
- 函數(shù)功能:無
***************************************************************************/
void AT24CXX_Read(u16 ReadAddr,u8 *pBuffer,u16 NumToRead)
{
while(NumToRead)
{
*pBuffer++=AT24CXX_ReadOneByte(ReadAddr++); 
NumToRead--;
}
}

/***************************************************************************
- 功能描述:STM32f103在AT24CXX里面的指定地址開始寫入指定個(gè)數(shù)的數(shù)據(jù)
- 隸屬模塊:STM32 EEPROM操作
- 函數(shù)屬性:外部,使用戶使用
- 參數(shù)說明:ReadAddr :開始讀出的地址 對(duì)24c02為0~255
pBuffer :數(shù)據(jù)數(shù)組首地址,所讀到的數(shù)據(jù)存儲(chǔ)在了pBuffer中
NumToRead:要讀出數(shù)據(jù)的個(gè)數(shù)
- 返回說明:無
- 函數(shù)功能:無
***************************************************************************/

void AT24CXX_Write(u16 WriteAddr,u8 *pBuffer,u16 NumToWrite)
{
while(NumToWrite--)
{
AT24CXX_WriteOneByte(WriteAddr,*pBuffer);
WriteAddr++;
pBuffer++;
}
}

有了STM32 I2C的配置,以及AT24C02的驅(qū)動(dòng)函數(shù),我們就可以對(duì)AT24C02EEPROM 進(jìn)行讀寫操作了,如果是其他的I2C器件,則只需寫出其驅(qū)動(dòng)就OK了。

為什么用STM32模擬呢,因?yàn)镾TM32的硬件I2C確實(shí)比較復(fù)雜~~~~~~


關(guān)鍵字:STM32  主機(jī)I2C  讀寫24C02  EEPROM 引用地址:STM32作為主機(jī)I2C,讀寫24C02 EEPROM

上一篇:STM32一個(gè)Timer輸出4路不同頻率、可調(diào)占空比的PWM
下一篇:STM32 24C02函數(shù) I2C例程 非STM32庫方式

推薦閱讀

我們玩ARM9,一般都是在內(nèi)存里調(diào)試程序,速度飛快。STM32下也可以這樣,雖說現(xiàn)在的flash壽命已經(jīng)很長了,但flash中調(diào)試燒錄程序還是一個(gè)很慢的過程,有時(shí)候程序上一個(gè)小小的改動(dòng)要花上幾倍的時(shí)間下載代碼,這確實(shí)是不能忍受的。  我們也可以在開發(fā)STM32時(shí),在內(nèi)存中調(diào)試程序。  {STM32這顆Cortex-M3控制器,與其他許多ARM一樣,提供了BOOT0和BOOT1兩個(gè)...
最近谷歌Pixel 4系列新機(jī)被瘋狂曝光,現(xiàn)在網(wǎng)上又出現(xiàn)了Pixel 4 XL的5G版本,而且這款機(jī)型擁有8GB的內(nèi)存。  Geekbench數(shù)據(jù)顯示,這款Pixel 4 XL 5G版本搭載了驍龍855處理器,在單核測(cè)試中得分為761,在多核測(cè)試中得分為2326,顯然,這個(gè)分?jǐn)?shù)并不準(zhǔn)確。 Pixel 4和Pixel 4 XL預(yù)計(jì)將在10月15日舉行的Made by Google活動(dòng)中亮相,...
iPad Air 4率先用上5nm處理器A14,這顆芯片還將被應(yīng)用到iPhone 12系列上。蘋果A14仿生芯片之后,華為、高通、三星等手機(jī)芯片廠商將會(huì)陸續(xù)跟進(jìn)。其中高通、三星即將發(fā)布的5nm旗艦處理器分別為高通驍龍875和三星Exynos 1000。據(jù)報(bào)道,高通驍龍875、三星Exynos 1000均為“1+3+4”八核心設(shè)計(jì),即一顆超大核心+三顆大核心+四顆能效核心組成。消息稱三星Exy...
蘋果新品陸續(xù)上市,下半年進(jìn)入拉貨旺季,相關(guān)供應(yīng)鏈也大啖蘋單;富采投控 (3714-TW) 為 iPad、MacBook Pro 的 Mini LED 背光元件供應(yīng)商,光磊 (2340-TW) 則供貨 Apple Watch 7 感測(cè)元件,受惠蘋果拉貨動(dòng)能升溫,富采、光磊第四季營運(yùn)同步看旺。 富采為蘋果 iPad 和 MacBook 主要 Mini LED 背光元件供應(yīng)商,受惠 iPad Pro 產(chǎn)品量產(chǎn)...

史海拾趣

問答坊 | AI 解惑

半導(dǎo)體二極管及其應(yīng)用 測(cè)試題

導(dǎo)體二極管及其應(yīng)用   1.本征半導(dǎo)體中的自由電子濃度______空穴濃度 大于 小于 等于 2.在摻雜半導(dǎo)體中,多子的濃度主要取決于______ 溫度 材料 摻雜工藝 摻雜濃度 3.在摻雜半導(dǎo)體中,少子的濃度受______的影響很大 溫度 ...…

查看全部問答∨

如何學(xué)會(huì)編程

怎樣才能把單片機(jī)學(xué)好…

查看全部問答∨

多線程技術(shù)在數(shù)據(jù)實(shí)時(shí)采集分析中的應(yīng)用

引言   數(shù)字接口設(shè)備是實(shí)現(xiàn)標(biāo)準(zhǔn)422串行總線到自定義串行總線轉(zhuǎn)換的專用通信設(shè)備。數(shù)字接口測(cè)試系統(tǒng)根據(jù)數(shù)字接口設(shè)備的工作原理,輸出422串行數(shù)據(jù)和自定義串行總線的控制信號(hào)(YCK,YZM)給數(shù)字接口設(shè)備,并對(duì)其輸出的串行數(shù)據(jù)(YDATA)進(jìn)行采集、 ...…

查看全部問答∨

DM6467之SEED開發(fā)板全套資源 好不好

DM6467之SEED開發(fā)板全套資源 好不好…

查看全部問答∨

問一下華為成都研究所的情況

不知道大家對(duì)華為成都研究所有什么了解呢,它主要是搞那些方向的,好像是有微波方向的,不知道是研究生,需要什么方向的專業(yè)與其對(duì)口,希望知情的給我答案,謝謝了!…

查看全部問答∨

winCE下進(jìn)行FTP傳輸文件編程的曠世難題!!!高手一進(jìn)便知

try { //新建連接對(duì)象 m_pFTPConnection=m_pIntSession->GetFtpConnection(m_ServerIp,m_UserName,m_UserPwd); } catch(CInternetException *pEx) { //獲取錯(cuò)誤信息 TCHAR szError[1024]; if(pEx->GetErrorMessage(szError,1 ...…

查看全部問答∨

硬件群

80264307 IT硬件電子電路群歡迎加入,歡迎硬件高手、電子電路高手來傳播硬件知識(shí)!! …

查看全部問答∨

EVC 調(diào)試的問題

不知道是什么原因, 我可以通過網(wǎng)線下載鏡像到目標(biāo)板并啟動(dòng)操作系統(tǒng),然而在EVC里無法通過KITL和CESH來下載調(diào)試應(yīng)用程序,連接不上目標(biāo)板。 有人建議我使用ActiveSync和USB調(diào)試,但也宣告失敗。 我想問一下,能否通過網(wǎng)線和ActiveSync來實(shí)現(xiàn)下載 ...…

查看全部問答∨

北京大揚(yáng)科技提供 wince 6.0和 mobile 6.0兩套操作系統(tǒng)的 PXA310開發(fā)板

硬件技術(shù)指標(biāo) Hardware Feature ◆CPU:Marvell PXA310,運(yùn)行頻率624MHz ◆內(nèi)存:128MB DDR+1GB NandFlash ◆LCD:WinCE:4.3” TFT(480X272);WinMobile:3.5” TFT(320X240),均帶電 阻式觸摸屏 ◆Audio Codec:Wolfson WM9713,AC’97 接 ...…

查看全部問答∨

對(duì)‘操作系統(tǒng)’技術(shù)癡迷的朋友請(qǐng)進(jìn)

我也是對(duì)計(jì)算機(jī)操作系統(tǒng)有濃厚的興趣,可是操作系統(tǒng)這個(gè)高難度科目不是想象的那么簡(jiǎn)單,盡管我們勇氣十足。我真希望能和志同道合的朋友一起交流,一起進(jìn)步,這樣我們?cè)谘芯坎僮飨到y(tǒng)的時(shí)候才不寂寞和枯燥。 盡管現(xiàn)在各種操作系統(tǒng)已經(jīng)很成熟了,但是 ...…

查看全部問答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 长汀县| 福海县| 溧阳市| 河南省| 城固县| 盐边县| 黎城县| 南岸区| 汤原县| 柘城县| 顺义区| 晋江市| 巴中市| 承德市| 舒城县| 开平市| 噶尔县| 卢龙县| 景德镇市| 达日县| 津南区| 辽源市| 全椒县| 威远县| 长海县| 平阳县| 安丘市| 滨州市| 十堰市| 安阳市| 汉中市| 德令哈市| 岗巴县| 游戏| 浏阳市| 黎川县| 修水县| 六安市| 视频| 澳门| 商河县|