【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进制就正常了呢~~~~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
icboy_591
1楼-- · 2020-02-04 13:43
tmp = (timedata[i] / 10)<<4;
你看看你的这句和下句,出现乱码是你自己造成的好不
skbljs2652
2楼-- · 2020-02-04 18:46
 精彩回答 2  元偷偷看……

一周热门 更多>