最近做一个低功耗产品,用到的是STM8L152单片机,其中用到了单片机的内部的硬件IIC,程序进入低功耗halt()模式后再退出halt()模式时,有时候会卡在while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT));这句话这里,然后就一直死在这里了,下面我会截图和上一部分代码,不知道坛友们有遇到过这种情况吗?调了几天了, 很蛋痛
[mw_shl_code=applescript,true]void IIC_Rest()
{
unsigned char i;
while(I2C_GetFlagStatus(I2C1, I2C_FLAG_BUSY)); //等待空闲
I2C_GenerateSTART(I2C1, ENABLE);//开启I2C1
while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT));/*EV5,主模式*/
I2C_Send7bitAddress(I2C1, I2C1_WRITE_ADDRESS7, I2C_Direction_Transmitter);//器件地址 -- 默认0x90
while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED));
I2C_SendData(I2C1, REST_Value);
while (!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED));
I2C_AcknowledgeConfig(I2C1,ENABLE);
I2C_GenerateSTOP(I2C1, ENABLE);//关闭I2C1总线
for(i=0;i<255;i++);
for(i=0;i<255;i++);
}[/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>