已经告诉你了,你上传的代码中,你的端口设置是对的,就不要再去找端口的毛病了
SDA和SCL都要加上拉10K电阻!!!!!!!
IIC可以驱动其它的IIC器件也不一定是对的!!!!!
为什么要叫你用24c01,这个器件是标准的IIC,不支持高速IIC的,在它上面运行正常了,在SD3078就能正常了
不要duang!duang!duang!先写一堆几千行的代码,然后就进行验证,那么多代码,问题出在哪里你都不一定知道
"先验证IIC从机地址对不对,先不管数据读写,先写一个验证代码,向从机发送地址,看一下有没有响应,可以用一个LED或者某个端口的电平来进行验证"
1,什么其它的代码都不要,只要端口设置和IIC写入一个字节函数,外加一个延时函数,延时可以设定为1秒2,P0^1=0;//LED这个端口先灭灯
3,写入从机地址 0x64
4,等待IIC从机应答,如果不应答就是死循环
5,P0^1 = 1;//
while(1);
6,烧录验证,不要仿真!!!!!!!!!
以上6步,从P.01端口的电平信号就可以知道从机是否能响应主机的IIC信号了
低电平:说明从机没有应答
高电平:说明从机已经应答,写字节的IIC代码是对的
再不行,把你的所有代码,原理图上传
还是不行,那就放弃吧
|