熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2020-2-10 00:04
正文摘要:初學(xué)i2c接口,編寫個(gè)程序i2c讀器件ACK 如:"ack=i2c_SendData(0x46);“反復(fù)嘗試了3個(gè)I2C器件,始終只有MPU6050(Addr:0xD0)返回ACK為低電平。反復(fù)嘗試N次后使本人失去了學(xué)習(xí)的勇氣,太詭異了。請(qǐng)各位 ... |
1.線接對(duì)了沒有;2.速率是否符合要求;3.給你發(fā)一下我的這個(gè)發(fā)送函數(shù)你對(duì)照著看看吧 bit I2C_Write(unsigned char dat) { bit ack; unsigned char pos; for (pos=0x80; pos; pos>>=1) { if (dat & pos) I2C_SDA = 1; else I2C_SDA = 0; I2C_Delay(0); I2C_SCL = 1; I2C_Delay(1); I2C_SCL = 0; I2C_Delay(0); } I2C_SDA = 1; //釋放SDA I2C_Delay(0); I2C_SCL = 1; I2C_Delay(0); ack = I2C_SDA; // I2C_Delay(0); I2C_SCL = 0; I2C_Delay(1); return !ack; } |
Powered by 單片機(jī)教程網(wǎng)