本帖最后由 shizaigaole 于 2010-7-14 16:13 编辑
最近调stm32 的 I2C 程序。
采用中断方式,
顺便监控了一下I2C中断事件,
读EEPROM的时候,数据如下:
0x00030001 I2C_EVENT_MASTER_MODE_SELECT
0x00070082 I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED
0x00070080 I2C_EVENT_MASTER_BYTE_TRANSMITTING
0x00070084 I2C_EVENT_MASTER_BYTE_TRANSMITTED
0x00070084
0x00070084
0x00070084
0x00070084
0x00070084
0x00070084
0x00070084
0x00070084
0x00070084
0x00070084
0x00070084
0x00070084
0x00070084
0x00070084
0x00030001
0x00030002 I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED
0x00030040(30个) I2C_EVENT_MASTER_BYTE_RECEIVED
非常奇怪的是当写完eeprom内存地址,restart以后,
stm32还连续产生了15次 I2C_EVENT_MASTER_BYTE_TRANSMITTED事件,
才能进入从模式选择,
进了14次中断重复
I2C_GenerateSTART(I2C1, ENABLE);
好像不大应该啊 |