用的是旗舰的板子,代码没用原子大哥的,是我根据《原子交你玩STM32》的步骤自己编的;
请教一下几个问题:
1)RTC的时钟数据时存储在备份寄存器中的,那要怎样才会使它的信息丢失呢?断电,擦除代码似乎都不行。目前我只是在usmart调试里调用RTC_Set()函数才能修改时间,否则只会继续显示。。。。
2)显示问题:显示的好奇怪,说是font.h错了也不像,但是不怎么清晰,硬件没问题。下有图:
部分
//时间显示格式
linechar_1608t(5,5," - - ");
linechar_1608t(6,5," : : ");
while(1)
{
F_COLOR = color(60,0,0);
if(t!=calendar.sec)
{
t=calendar.sec;
count_show(5,5,calendar.w_year); //先写数,再擦除,count_show();第x行,第Y个数
count_show(5,10,calendar.w_month);
count_show(5,13,calendar.w_date);
count_show(6,5,calendar.hour);
count_show(6,8,calendar.min);
count_show(6,11,calendar.sec);
switch(calendar.week)
{
case 0:
linechar_1608t(5,18,"Sun");//写字符串函数
break;
case 1:
linechar_1608t(5,18,"Mon");
break;
case 2:
linechar_1608t(5,18,"Tues");
break;
case 3:
linechar_1608t(5,18,"Wed");
break;
case 4:
linechar_1608t(5,18,"Thur");
break;
case 5:
linechar_1608t(5,18,"Fri");
break;
case 6:
linechar_1608t(5,18,"Sat");
break;
}
delay_ms(1000);
Clear_Line(5,5,4); //为了避免干扰,每次对写的数都用了擦除函数
Clear_Line(5,10,2); //第5行,第10个数开始,擦除2个数;
Clear_Line(5,13,2);
Clear_Line(5,18,5);
Clear_Line(6,5,2);
Clear_Line(6,8,2);
Clear_Line(6,11,2);
delay_ms(10);
}
}
3)请教一下原子大哥在calendar那个结构体重数据的定义;vu16,不稳定的无符号16位,和u16有什么区别
我的count_show里显示的只可以使u16的数字,我照着修改了下,感觉没什么区别???
|