STM8S I2C 在从接收模式能正常接收到停止位信号,但在从发送模式始终接收不到停止位信号,
I2C主接收程序是这样写的:
在 I2C_SR1_BTF为1中断发生后执行下面程序;
I2C->CR2 &= ~I2C_CR2_ACK;
*(pu8_DataBuffer_cpy++) = I2C->DR;
I2C->CR2 |= I2C_CR2_STOP;
*(pu8_DataBuffer_cpy++) = I2C->DR;
I2C->ITR |= I2C_ITR_ITBUFEN;
接下去I2C主机再接收一个字节后应该返回一个非应答;并且发送一个停止位;
但I2C从机发送完最后一个字节后,却接收不到停止位;并且还继续产生发送缓冲器空中断;
各位大哥,帮忙指点下;万谢! |