嵌入式培訓(xùn)—12.23

① I2C(內(nèi)部集成總線(xiàn))

????????(1)SDK時(shí)鐘線(xiàn)澄港;

????????(2)SDA數(shù)據(jù)線(xiàn)镀钓;

(節(jié)省硬件資源)

② 傳輸協(xié)議(信號(hào)獨(dú)立于數(shù)據(jù)):

????????(1)起始信號(hào):SCL高電平時(shí)进栽,SDA為下降沿時(shí)雷滋;

????????(2)結(jié)束信號(hào):SCL高電平時(shí)类缤,SDA為上升沿時(shí)臼勉;

????????(3)校驗(yàn):握手(接收方應(yīng)答):

????????????????< 1 > ACK:應(yīng)答,數(shù)據(jù)線(xiàn)低電平餐弱;

????????????????< 2 > NACK:非應(yīng)答宴霸,數(shù)據(jù)線(xiàn)高電平镜盯;

????????(1)時(shí)序:


????????????????< 1 > SCL:第1—7 bit 從設(shè)備地址 + 第8 bit 傳輸方向(0—主向從發(fā),1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?????????—從向主發(fā))+ 第9 bit 校驗(yàn)位(應(yīng)答)猖败;

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

? ? ? ? ? ? ? ? ? ? ? ? ? SDA:8 bit 有效數(shù)據(jù) + 1 bit 校驗(yàn)位(應(yīng)答)速缆;

????????????????< 2 >在時(shí)鐘線(xiàn)的低電平進(jìn)行數(shù)據(jù)線(xiàn)的電平變換;

????????????????< 3 >在時(shí)鐘線(xiàn)的高電平進(jìn)行鎖存恩闻;

????????????????< 4 >數(shù)據(jù)格式高位在前(MSB)艺糜;

③ 地址

????????(1)設(shè)備號(hào)(設(shè)備地址):

????????E2PROM:

????????????????< 1 > ROM只讀存儲(chǔ)器;

????????????????????????A . PROM ? (可編程存儲(chǔ)器);

????????????????????????B . EPROM (可擦寫(xiě)編程存儲(chǔ)器);

????????????????????????C . E2PROM (電信號(hào)可擦寫(xiě)編程存儲(chǔ)器)幢尚,存儲(chǔ)量小破停,造價(jià)高;


????????????????????????Flash:

????????????????????????????????a . NorFlash ;

????????????????????????????????b . NandFlash ;


????????????????< 2 > RAM隨機(jī)存儲(chǔ)器尉剩;

????????????????????????A . SRAM (靜態(tài)存儲(chǔ)器)真慢,造價(jià)高;

????????????????????????B . DRAM (動(dòng)態(tài)存儲(chǔ)器)理茎,需要定時(shí)刷新(電容充電);

????????????????????????C . SDRAM ;

????????????????????????D . DDR ;

????????(2)設(shè)備內(nèi)地址黑界;

④ 端序

????????(1)大端序:高位在低地址;

????????(2)小端序:高位在高地址皂林;

⑤E2PROM

????????(1)寫(xiě):起始 + 設(shè)備號(hào) + 傳輸方向(0) + 應(yīng)答 + 從設(shè)備內(nèi)地址 + 應(yīng)答 + 多個(gè)數(shù) ????????????????????????據(jù)(從設(shè)備應(yīng)答)+結(jié)束信號(hào)朗鸠;

????????????????按字節(jié)寫(xiě):每寫(xiě)一個(gè)地址,帶一個(gè)地址础倍;

????????????????按頁(yè)寫(xiě):大小1—16字節(jié)烛占,跨頁(yè)重發(fā)地址;

? ? ? ?(2)讀:起始 + 設(shè)備號(hào) + 傳輸方向(0) + 應(yīng)答 + 從設(shè)備內(nèi)地址 + 應(yīng)答 + 起始位 ????????????????????????+設(shè)備號(hào) + 傳輸方向(1) + 應(yīng)答 + ?多個(gè)數(shù)據(jù)(主設(shè)備應(yīng)答)+ ????????????????????????主設(shè)備非應(yīng)答 + 結(jié)束沟启;

⑥ 使用I2C實(shí)現(xiàn)串口通信

? ? ? ? 代碼:

#include "mapp.h"

#define E2PROM_ID? ? ? ? 0xA0

#define E2PROM_Timeout? 0xFFFF

int? Layer = 0;

uint8_t Layer_Buf[4][100]={"Hello,world !\r\n", "Hello,Sean !\r\n", "Hello,Tom !\r\n", "Hello,Billy !\r\n"};

/********************

HAL?aoˉêy

*****************/

void e2prom_read(uint8_t madd,uint8_t *buf,uint32_t size)

{

HAL_I2C_Mem_Read(& hi2c1, E2PROM_ID,madd, 1,buf, size, E2PROM_Timeout);

HAL_Delay(2);

}

void e2prom_write(uint8_t madd,uint8_t *buf,uint32_t size)

{

uint32_t i;

for(i=0;i<size;i++)

{

//μ¥×??úD′

HAL_I2C_Mem_Write(&hi2c1, E2PROM_ID, madd, 1, &buf[i], 1, E2PROM_Timeout);

madd++;

HAL_Delay(2);

}

}

void I2C_Tel()

{

uint8_t buf[100];

if(Layer == 0)

{

e2prom_write(0,Layer_Buf[0],15);

memset(buf,0,100);

e2prom_read(0,buf,15);

printf("%s",buf);

}

if(Layer == 1)

{

e2prom_write(64,Layer_Buf[1],14);

memset(buf,0,20);

e2prom_read(64,buf,14);

printf("%s",buf);

}

if(Layer == 2)

{

e2prom_write(128,Layer_Buf[2],13);

memset(buf,0,20);

e2prom_read(128,buf,13);

printf("%s",buf);

}

if(Layer == 3)

{

e2prom_write(192,Layer_Buf[3],15);

memset(buf,0,20);

e2prom_read(192,buf,15);

printf("%s",buf);

}

}

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)

{

if(GPIO_Pin == GPIO_PIN_0)

{

Layer ++;

if(Layer > 3)

Layer = 0;

I2C_Tel();

}

if(GPIO_Pin == GPIO_PIN_13)

{

Layer --;

if(Layer < 0)

Layer = 3;

I2C_Tel();

}

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末忆家,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子德迹,更是在濱河造成了極大的恐慌芽卿,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浦辨,死亡現(xiàn)場(chǎng)離奇詭異蹬竖,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)流酬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)币厕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人芽腾,你說(shuō)我怎么就攤上這事旦装。” “怎么了摊滔?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵阴绢,是天一觀的道長(zhǎng)店乐。 經(jīng)常有香客問(wèn)我,道長(zhǎng)呻袭,這世上最難降的妖魔是什么眨八? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮左电,結(jié)果婚禮上廉侧,老公的妹妹穿的比我還像新娘。我一直安慰自己篓足,他們只是感情好段誊,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著栈拖,像睡著了一般连舍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上涩哟,一...
    開(kāi)封第一講書(shū)人閱讀 51,521評(píng)論 1 304
  • 那天索赏,我揣著相機(jī)與錄音,去河邊找鬼染簇。 笑死参滴,一個(gè)胖子當(dāng)著我的面吹牛强岸,可吹牛的內(nèi)容都是我干的锻弓。 我是一名探鬼主播,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼蝌箍,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼青灼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起妓盲,我...
    開(kāi)封第一講書(shū)人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤杂拨,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后悯衬,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體弹沽,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年筋粗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了策橘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡娜亿,死狀恐怖丽已,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情买决,我是刑警寧澤沛婴,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布吼畏,位于F島的核電站,受9級(jí)特大地震影響嘁灯,放射性物質(zhì)發(fā)生泄漏泻蚊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一丑婿、第九天 我趴在偏房一處隱蔽的房頂上張望藕夫。 院中可真熱鬧,春花似錦枯冈、人聲如沸毅贮。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)滩褥。三九已至,卻和暖如春炫加,著一層夾襖步出監(jiān)牢的瞬間瑰煎,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工俗孝, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留酒甸,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓赋铝,卻偏偏與公主長(zhǎng)得像插勤,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子革骨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 標(biāo)準(zhǔn)庫(kù)占絕大多數(shù)农尖,自己買(mǎi)的板子跟的資料也一般是標(biāo)準(zhǔn)庫(kù),HAL庫(kù)很少良哲,不過(guò)要是使用STM32CubeMx配置盛卡,那么就...
    停下浮躁的心閱讀 6,160評(píng)論 0 3
  • 一、Bootloader固件升級(jí) RT-Thread ST固件更新過(guò)程 RT-Thread 通用 Bootload...
    Mr_Michael閱讀 3,840評(píng)論 0 0
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom閱讀 2,696評(píng)論 0 3
  • 其實(shí)這篇文章主要是介紹自己為其寫(xiě)的GPIO庫(kù),自己借鑒了原子寫(xiě)的STM32,野火寫(xiě)的K60,還有LPC官方庫(kù),然后...
    楊奉武閱讀 766評(píng)論 0 0
  • 民生在勤筑凫,勤則不匱滑沧。
    史介鴻閱讀 244評(píng)論 0 1