51到32又見面了大佬作者: yangyang123321 時間: 2024-11-14 19:57
解決辦法: 我的是模擬i2c ,其他讀寫函數都不用變,只需要改停止信號的的時序即可。 原來的停止信號: //產生IIC停止信號 //產生IIC停止信號 void IIC_Stop(void) { SDA_OUT();//sda線輸出 IIC_SCL=0; IIC_SDA=0;//STOP:when CLK is high DATA change form low to high delay_us(4); IIC_SCL=1; IIC_SDA=1;//發送I2C總線結束信號 delay_us(4); } 修改后的停止信號時序 //產生IIC停止信號 void IIC_Stop(void) { SDA_OUT();//sda線輸出 IIC_SCL=0; IIC_SDA=0;//STOP:when CLK is high DATA change form low to high delay_us(4); IIC_SCL=1; delay_us(4); // 添加延時 IIC_SDA=1;//發送I2C總線結束信號 } 作者: yangyang123321 時間: 2024-11-14 20:01
解決辦法:
代碼如下
我的是模擬i2c ,其他讀寫函數都不用變,只需要改停止信號的的時序即可。
原來的停止信號:
//產生IIC停止信號
//產生IIC停止信號
void IIC_Stop(void)
{
SDA_OUT();//sda線輸出
IIC_SCL=0;
IIC_SDA=0;//STOP:when CLK is high DATA change form low to high
delay_us(4);
IIC_SCL=1;
IIC_SDA=1;//發送I2C總線結束信號
delay_us(4);
}
修改后的停止信號時序
//產生IIC停止信號
void IIC_Stop(void)
{
SDA_OUT();//sda線輸出
IIC_SCL=0;
IIC_SDA=0;//STOP:when CLK is high DATA change form low to high
delay_us(4);
IIC_SCL=1;
delay_us(4); // 添加延時
IIC_SDA=1;//發送I2C總線結束信號
}