高中生
最后登录1970-1-1
在线时间 小时
注册时间2019-1-10
|
本帖最后由 白粥 于 2019-2-17 18:21 编辑
1/I2C的初始化中,I2C_InitStruct.I2C_Ack = I2C_Ack_Enable; 这个语句的作用是什么?是让主从设备能够自动发送应答信号吗?
2/请问在使用I2C进行E2PROM的读写时,
i.假设STM32发送数据,那么它如何确定是否收到E2PROM的应答信号呢?
ii.假设STM32接收数据,那么它是通过 I2C_AcknowledgeConfig (EEPROM_I2C,ENABLE); 和 I2C_AcknowledgeConfig (EEPROM_I2C,DISABLE); 来发送ACK和NACK信号吗?如果不是的话,这个函数的功能是什么?跟第一个问题里的初始化语句是一样的功能吗?
ii.假设STM32接收数据,STM32需要发送NACK信号吗?根据AT24C02数据手册第9页The microcontroller does not respond with a “0” but does generate a following stop condition (see Figure 11 on page 11).,STM32只需要发送停止信号不用发送NACK信号,但给的教程里说需要 I2C_AcknowledgeConfig (EEPROM_I2C,DISABLE); 来产生NACK信号,到底需不需要呢?
本人是新手,对I2C协议自我感觉理解了,但在编程上对ACK感到疑惑,望诸位大神不吝赐教啊!
|
|