【ds1302芯片】写入数据 是用 BCD码的对吧~~~
RT;但是我定义一个 unsigned char的数组存放初始化时间,uint8 code time={55,59,18} //秒分时
在转换成BCD码 :
for (i=0; i<7; i++)
{
tmp = (timedata / 10)<<4;
timedata = timedata % 10;
timedata = tmp|timedata;
}
但是写进去在数码管上乱码
可是写成uint8 code time={0x55,0x59,0x18} //秒分时
并且把BCD转换代码注释掉,就不会乱码,显示很正常完整,到60进位消零······
我很费解啊,写入的不是BCD码吗? 为什么不转换写16进制就正常了呢~~~~ tmp = (timedata / 10)<<4;
你看看你的这句和下句,出现乱码是你自己造成的好不 LZ的程序的确是有问题的~~
页:
[1]