| 还是好好看看 DS1302 的时序图吧 |
| 个人认为还是晶振的问题 |
| 然而按楼主的法改了,还是不行。。。。 |
|
我也遇见了这个问题,只是都是小白无解 |
|
本帖最后由 rebosun 于 2015-10-13 14:11 编辑 /****************************************************************************/ unsigned char Read_Ds1302 ( unsigned char address ) { unsigned char i,temp=0x00; RST=0; _nop_(); SCLK=0; _nop_(); RST=1; _nop_(); Write_Ds1302_Byte(address); //DS1302这个芯片是上升沿写入数据,下降沿触发数据输出, for (i=0;i<8;i++) //循环8次 读取数据 { SCLK=0; //DS1302这个芯片是下降沿触发数据输出, temp>>=1; //右移一位 if(SDA2)temp|=0x80; //每次传输低字节 SCLK=1; } RST=0; _nop_(); //以下为DS1302复位的稳定时间 RST=0; SCLK=0; _nop_(); SCLK=1; _nop_(); SDA2=0; _nop_(); SDA2=1; _nop_(); return (temp); //返回 } |
| 求解决办法啊。。。。。 |