stm32模拟i2c读取bq40z50问题
现在用stm32的F103芯片用GPIO模拟i2c读取bq40z50电源管理芯片的数据,unsigned char i2cRead(void)
{
unsigned char count=8,Data=0;
DAT_IN;//set SDA as input
//NOP(4);
while(count--)
{
SET_CLK;delay();
Data=Data<<1;//Data shift left 1 bit
if(READ_DAT)//==1)//问题:READ_DAT永远不为1
Data=Data|0x01;//read data and save in Data
CLR_CLK;delay();
}
DAT_OUT;//set SDA as input
delay();
return(Data);
}
问题:READ_DAT永远不为1,导致读不到正确的数据,用示波器量也量不到波形,能给个建议我应该怎么做? 如果有I2C硬件直接用硬件接口更换。
首先要保证前面的发送地址等操作正确才有意义
前面的地址对吗,我也正在在搞这个,读取也不正常,你的应答都正常吗
请问搞定了吗,刚开始搞,想请教一下
给的信息不全啊
电流测到的老是不对,能指导下电流矫正怎么做吗
可能还是时序不太对
唉,还是没有什么结果,算了,多谢大家啦 模拟的一般时序掌握好就行了 为什么是电流不对呢 模拟的比较好用点 估计是时序不对了 用示波器看看波形吧 能正常定义地址吗 是使用的外部晶振吗
页:
[1]