CH582 請教I2C官方示例代碼問題

app_i2c.c里i2c_read_from()函數(shù)里i2c_master_buffer_length = length - 1;但是中斷函數(shù)里

/* address sent, ack received */

? ? ? ? ? ? if(event & RB_I2C_ADDR) {?

? ? ? ? ? ? ? ? /* ack if more bytes are expected, otherwise nack */

? ? ? ? ? ? ? ? if (i2c_master_buffer_index + 1 < i2c_master_buffer_length) {

? ? ? ? ? ? ? ? ? ? I2C_AcknowledgeConfig(ENABLE);

? ? ? ? ? ? ? ? ? ? I2C_DBG("? address sent\n");

? ? ? ? ? ? ? ? ? ? I2C_DBG("? ACK next\n");

? ? ? ? ? ? ? ? } else {

? ? ? ? ? ? ? ? ? ? //XXX: Should not delay too match before NACK?

? ? ? ? ? ? ? ? ? ? I2C_AcknowledgeConfig(DISABLE);

? ? ? ? ? ? ? ? ? ? is_nack_sent = true;

? ? ? ? ? ? ? ? ? ? I2C_DBG("? address sent\n");

? ? ? ? ? ? ? ? ? ? I2C_DBG("? NACK next\n");

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

判斷條件是i2c_master_buffer_index + 1 < i2c_master_buffer_length,也就是說接收1字節(jié)和2字節(jié)都是馬上I2C_AcknowledgeConfig(DISABLE);3字節(jié)開始才I2C_AcknowledgeConfig(ENABLE);

這里的ACK和NACK沒有錯誤嗎?我覺得2字節(jié)開始就應(yīng)該要I2C_AcknowledgeConfig(ENABLE);

感謝反饋,如有問題我們會在后續(xù)EVT包中更新。


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频