用430内部自带的硬件IIC接口与24c02通信,现在实现了写数据,但是读数据出现了问题。
比如我向第一个字节地址内写入8,然后读出数据,单步debug调试的时候,程序执行箭头的位置,查看寄存器UCB0RXBUF = 9,说明读到数据了,UCB0RXIFG=1,进入中断,RXData = UCB0RXBUF = 0xff,查看j的值为1(初始为0),说明确实进入中断了,而且中断只执行了一次,也产生了stop信号。
If UCBxRXBUF is not read the master holds the bus during reception of the last data
bit and until the UCBxRXBUF is read.
这是datasheet,UCBxRXBUF 没有读的情况下,总线保持接收最后一个bit,也就是说只要UCBxRXBUF没有读,应该保持值不变,而我进行读UCBxRXBUF是在中断中进行的 网上找了msp430+24c02的大都是模拟iic的,没有用内部的硬件接口。我的问题是UCBxRXBUF的值怎么就变了,求熟悉msp430的大神指导。
|