【ds1302芯片】写入数据 是用 BCD码的对吧~~~

2020-02-04 09:03发布

RT;
但是我定义一个 unsigned char的数组存放初始化时间,uint8 code time={55,59,18} //秒分时
在转换成BCD码 :
for (i=0; i<7; i++)  
        {
                tmp = (timedata[i] / 10)<<4;
                timedata[i] = timedata[i] % 10;
                timedata[i] = tmp|timedata[i];
        }

但是写进去在数码管上乱码
可是写成uint8 code time={0x55,0x59,0x18} //秒分时
并且把BCD转换代码注释掉,就不会乱码,显示很正常完整,到60进位消零······
我很费解啊,写入的不是BCD码吗? 为什么不转换写16进制就正常了呢~~~~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。