導航:首頁 > 操作系統 > 單片機i2c驅動

單片機i2c驅動

發布時間:2022-06-08 11:47:10

⑴ 很糾結啊!I2C通信,為什麼晶元有些要寫「讀寫驅動程序」,有些則不要

樓主錯了,51單片機是沒有集成I2C模塊的,那是用普通的IO口去模擬的I2C的時序,所以就需要把IO口隨時的變化成需要的電平,而ARM或者其他的,單片機里集成了IIC模塊,你只需要把寄存器設置好了,由模塊自己按照標準的IIC協議執行。

⑵ 單片機中 I2C匯流排協議中的問題

SCL=0; //拉低時鍾線,准備接收數據,否則後面循環中就無法出第1個上升沿了
delay(); //延時
SDA=1; //釋放數據線(不驅動,懸浮)由發送方驅動此線
delay(); //延時
for(i=0;i<8;i++) //8次循環每次接收1位
{
SCL=1; //拉高時鍾線,出一個上升沿,讀取數據,發送方會保持數據在SDA線上
delay();
k=(k<<1)|SDA;//k的其他位左移,將數據線狀態保存在k的最低位
SCL=0; //拉低時鍾線,等待發送放在數據線上放下1位
delay();
}

⑶ i2c的驅動睡眠和恢復操作怎麼被調用

I2C 有主機模式和從機模式,,所以有2個工程,,分別給2個單片機,,

也可以在一個工程中完成,,也就是1個單片機有時做主機 有時做從機

那你就要寫一個主機和從機的判斷函數了,,

所以樓主你先要搞清楚 誰是主機 誰是從機 誰給誰發數據!!!弄清楚再寫代碼!

至於為什麼加nop延時,,主要是因為I2C協議SCL,SDA的高低電平持續時間要求 是有嚴格的規

定 特別是對頻率晶振比較大的單片機 所以加NOP保證高電平 或者低電平 到位

一般規定5US 如果只持續1US 就不行

⑷ stc89c52單片機 實現i2c的引腳固定嗎

stc89c52單片機 實現i2c的引腳固定嗎?
第一種方式是固定的:如果使用stc89c52單片機I2C控制對EEPROM進行讀寫,讀寫訪問寄存器就好了,不用編代碼,這種情況下只能使用規定的兩個引腳,否則實現不了讀寫;
第二種方式不是固定的:你可以任意使用stc89c52單片機兩個引腳,作為數據和時鍾,然後自己編寫模塊I2C代碼,網上一大把,隨便下載都可以用。

⑸ 51單片機I2C匯流排的問題。關於EEPROM

你剛把數據寫進去立馬從中讀出來,硬體反應不過來,必須要延時一段時間,void delay1(int z)
{
intr x,y;
for(x=z;x>0;x--)
for(y=123;y>0;y--);
}
在寫函數之後加delay1(1000);
就對了

⑹ 1602液晶顯示屏在51單片機上用I2C協議驅動


去網路網頁搜51虛擬I2C,有很多相關資料和程序可供參考。

⑺ 如何用51單片機模擬i2c協議

I2C 協議包含了起始條件,停止條件,串列移位;這裡麵包含了三段時序。
下面根據應用分析:
1,假如你要寫一個ic的通信協議,而這個通信協議用的是I2C。
一般需要I2C通信的ic都會告訴你具體的時序圖,你可以查看具體的IC技術手冊,然後你根據時序圖的高低電位和電平改變的先後順序來寫I2C協議就行了,注意速度。
2,你想做一個模擬 I2C 驅動協議。
你在網上搜索一下I2C時序圖(有很多哦),然後你根據時序圖上面的電平高低,電平改變順序來寫這個協議就行了。

⑻ 現在要寫一個stm32的i2c驅動,以前沒任何單片機基礎,現學的,有軟體編程基礎

不理解你說的I2C驅動是什麼意思,是指用stm32與其他設備進行I2C通信嗎?還是用PC通過I2C控制stm32?
如果是後者,直接看I2C協議。
如果是前者,stm32有硬體I2C,但是都說不太好用bug多,建議用stm32模擬I2C。首先學習如何把程序下載到單片機,然後看stm32的時鍾樹圖和官方庫函數(主要看初始化部分),設備初始化完畢之後就可以執行你的I2C代碼了。

⑼ 這是一個單片機I2C的程序,麻煩高手幫忙指點下;為什麼有時顯示不行呢,雖然概率很低,要隔很長

1、可能延時時間不夠,器件讀寫速度慢,跟不上。

void delay()
{ ;; } //延遲5毫秒左右;

你用多少的晶振?12M的晶振標准51核,只能延時2個微秒。

2、write_byte(0xaa);
respons();
像這種寫入數據的操作需要時間比較長,你的等待時間可能不夠。查看你器件的datasheet,看它的寫入時間需要多久。

3、拿示波器看一下你IIC匯流排的波形的上升時間和下降時間能不能滿足IIC規范的要求。

4、嵌入式系統從穩定性考慮,最好對每個函數的操作成功與否進行判斷,系統要對錯誤的情況進行處理。比如樓主的respons();函數,比較好的一種處理方式是:如果等待超時,那麼返回錯誤碼,由上層函數決定如何處理錯誤。重發or放棄,等等。 樓主剛剛開始學習不必要深究,可以思考下這方面的問題。

⑽ 請問I2C匯流排的驅動程序 要學會自己寫嘛 還是平時寫的時候只要復制過來,拿來用就可以 求指教啊!!!

如果你學單片機的哈,肯定是要學會自己寫的,最起碼你要能把別人的程序能調通,能通信,而且不同單片機的I2C協議是有部分的不同的,例如有的I2C在接收的時候會發兩次,第一次不是數據而是要把它讀空,第二次才是數據,如果你用正常的單片機協議肯定就讀不到數據了

閱讀全文

與單片機i2c驅動相關的資料

熱點內容
電子加密貨幣最新政策 瀏覽:377
androidcanvas撤銷 瀏覽:267
安卓手機怎麼把圖標全部下移 瀏覽:183
飢荒被伺服器踢出怎麼進 瀏覽:170
c編譯器哪款好 瀏覽:732
快手寶哥發明什麼app 瀏覽:822
張艷玲編譯 瀏覽:66
android展開收起動畫 瀏覽:237
linuxxz文件 瀏覽:160
在游戲中心裏面怎麼玩到解壓神器 瀏覽:484
電腦發到手機裡面照片怎麼解壓 瀏覽:73
虛擬pdf列印機64位 瀏覽:413
支付寶AES加密和解密 瀏覽:379
編譯實驗原理下載 瀏覽:131
加密防偽溯源系統私人定做 瀏覽:222
掃碼給電動車充電的app叫什麼 瀏覽:760
關閉命令提醒 瀏覽:356
雲賬本app伺服器 瀏覽:499
python輸入數字循環 瀏覽:370
未成年人用什麼app 瀏覽:517