时钟源选择内部低速40KHZ,我试了一下,就是每次都得初始化RTCu8 RTC_Init(void),程序才能跑,如果复位,立刻白屏,程序停止,这里我用
switch(calendar.week)
{
case 0:
LCD_PutString(40,140,"Sunday",0x0000,0xf800);
break;
case 1:
LCD_PutString(40,140,"Monday",0x0000,0xf800);
break;
case 2:
LCD_PutString(40,140,"Tuesday ",0x0000,0xf800);
break;
case 3:
LCD_PutString(40,140,"Wednesday",0x0000,0xf800);
break;
case 4:
LCD_PutString(40,140,"Thursday ",0x0000,0xf800);
break;
case 5:
LCD_PutString(40,140,"Friday",0x0000,0xf800);
break;
case 6:
LCD_PutString(40,140,"Saturday ",0x0000,0xf800);
break;
}
LCDShow_uCharNumber(40,120,calendar.hour,2,0x0000,0xf800);
LCDShow_uCharNumber(80,160,calendar.min,2,0x0000,0xf800);
LCDShow_uCharNumber(100,180,calendar.sec,2,0x0000,0xf800);
printf("miao:%d us\r\n",calendar.sec);//打印总的高点平时间
}
printf("miao:%d us\r\n",calendar.sec);//打印检测程序是否运行,一旦复位,TFT白屏,串口也打印不出数字,程序是死在哪里了,我的BAT接的是外部电源,没有纽扣电池,把电源线拔掉 bkb值会丢失,再上电,又重新初始化RTC,正常运行,总之就是复位程序就死吧。
后来又选外部8M128分频,也是一样的问题
经软件调式发现程序一复位就是死在这里了如图
这好像是在运行main之前的SystemInit()将时钟系统初始化为默认状态,卡在这里怎么回事 |