最近在使用pcf8563时钟芯片,参考论坛大神的驱动程序,但是读出的数据有误,比如 秒钟是从47开始 到57又返回47,月日星期的时间有时候乱跳。
iic.zip
(3 KB, 下载次数: 374)
2016-8-25 15:42 上传
点击文件名下载附件
pcf8563.rar
(9.12 KB, 下载次数: 391)
2016-8-25 15:42 上传
点击文件名下载附件
这是参考程序,使用了网友的IIC时序和8563的驱动。
我的主函数
[mw_shl_code=applescript,true]
void main()
{
bsp_Init(); /*硬件初始化 */
//PCF8563_Time_Init(&Display_Time[8]);
PCF8563_Write_Byte(0x08,16);delay_us(100);//分别写入年 月 周 日 时分秒 16 8 25 周四 4:00:00
PCF8563_Write_Byte(0x07,8);delay_us(100);
PCF8563_Write_Byte(0x06,4);delay_us(100);
PCF8563_Write_Byte(0x05,25);delay_us(100);
PCF8563_Write_Byte(0x04,04);delay_us(100);
PCF8563_Write_Byte(0x03,00);delay_us(100);
PCF8563_Write_Byte(0x02,0);delay_us(100);
delay_us(5000);
while(1)
{
//Time_Handle();//¶áè¡ê±¼ä
Display_Date[0]=PCF8563_Read_Byte(0x08);delay_us(55100);//依次读出时间
Display_Date[1]=PCF8563_Read_Byte(0x07);delay_us(55500);
Display_Date[2]=PCF8563_Read_Byte(0x06);delay_us(55100);
Display_Date[3]=PCF8563_Read_Byte(0x05);delay_us(55100);
Display_Date[4]=PCF8563_Read_Byte(0x04);delay_us(55100);
Display_Date[5]=PCF8563_Read_Byte(0x03);delay_us(55100);
Display_Date[6]=PCF8563_Read_Byte(0x02);delay_us(55100);
LcdBackLightInit(1);
LcdScreenSet(LCD_SCREEN_8563test); //12864显示
PrintLcd();
}
}[/mw_shl_code]
硬件
我设置的时间为 16 8 25 周四 4:00:00 ,读出的时间也是这个,秒钟开始走到9秒就不正常了,秒钟直接蹦到19,然后继续正常,到48蹦到57,然后都70s了还在走。。。。最后走到了89s 分钟+1
一段时间后月 日 时间 都是乱跳的,就年一直很稳定,,过一会年月日又正常了。。一会又不正常,,,我真的没招了。
芯片是st的f407,模拟IIC,挂了一8563,还有一个24c08,我用了两个IIC通讯,两组端口,所以也不会冲突吧,不知道是什么原因导致现在的情况。。。
谢谢大家了
一周热门 更多>