迪文科技论坛

 找回密码
 立即注册
搜索
查看: 272|回复: 7

【提问】求助帖

[复制链接]

13

主题

27

回帖

146

积分

注册会员

Rank: 2

积分
146
发表于 2022-2-27 16:48:26 | 显示全部楼层 |阅读模式
想实现单片机读取迪文屏时间之后,修改一下再将时间发送回去。用了
5A A5 03 81 20 07读取时间之后,把时间存在systime里面,通过修改之后,发回去


每次复位就修改一下时间,为什么我修改的是日,但时分秒也会改变,然后时不时还会乱码呀,是指令错误了吗
回复

使用道具 举报

0

主题

420

回帖

2318

积分

金牌会员

Rank: 6Rank: 6

积分
2318
发表于 2022-2-28 08:35:48 | 显示全部楼层
本帖最后由 wangyuxiang 于 2022-2-28 08:37 编辑

Step1:需要发送改写 RTC 的申请,即向 0x1F 寄存器写入数据 0x5A,指令为 5A A5 03 80 1F 5A。
Step2:向以 0x20 为首地址的 RTC 寄存器中写入想要修改的数据即可。例如,将时间设定为 2016 年 1 月
25 日 17:08:20,则发送 5A A5 09 80 20 16 01 25 00 17 08 20。
还可将上面两个指令合并以简化操作,即直接从 1F 地址处写入 5A+欲修改的时间,发送的指令 5A A5 0A
80 1F 5A 16 01 25 00 17 08 20。
【注】写 RTC 时,只需要改写公历的年月日时分秒即可,DGUS 屏会自动换算星期和农历。在上面的例子中,改写星期位
置的数据就随便写为了
指令是这样来写,如果你发送指令的速率不要太快。DGUS屏幕运行周期比较慢。
回复

使用道具 举报

0

主题

3

回帖

258

积分

中级会员

Rank: 3Rank: 3

积分
258
发表于 2022-2-28 08:37:14 | 显示全部楼层
日期是修改22位置的一个字节,你看看是不是修改地址和数据长度不对
回复

使用道具 举报

13

主题

27

回帖

146

积分

注册会员

Rank: 2

积分
146
 楼主| 发表于 2022-2-28 19:55:41 | 显示全部楼层
wangyuxiang 发表于 2022-2-28 08:35
Step1:需要发送改写 RTC 的申请,即向 0x1F 寄存器写入数据 0x5A,指令为 5A A5 03 80 1F 5A。
Step2:向 ...

我的指令都是正确的欸,但是他经常乱码,就是我只修改了日期,他时分秒也变了,我是每五秒读取一次时间,然后发送一次,这样速率会太快吗
回复

使用道具 举报

13

主题

27

回帖

146

积分

注册会员

Rank: 2

积分
146
 楼主| 发表于 2022-2-28 19:57:57 | 显示全部楼层
liucongjiao 发表于 2022-2-28 08:37
日期是修改22位置的一个字节,你看看是不是修改地址和数据长度不对

我用串口一次一次发送的话,是对的,但是我用单片机,每五秒读取一次时间,修改一下,再发送就不对了
回复

使用道具 举报

0

主题

3

回帖

258

积分

中级会员

Rank: 3Rank: 3

积分
258
发表于 2022-2-28 21:32:20 来自手机 | 显示全部楼层
你把单片机同电脑通信,看看你单片机发送出来的指令是不是同你单次用串口发的指令相同
回复

使用道具 举报

13

主题

27

回帖

146

积分

注册会员

Rank: 2

积分
146
 楼主| 发表于 2022-2-28 21:53:50 | 显示全部楼层
liucongjiao 发表于 2022-2-28 21:32
你把单片机同电脑通信,看看你单片机发送出来的指令是不是同你单次用串口发的指令相同 ...

我单片机复位之后发送 5A A5 03 81 20 07  然后延迟五秒之后,启动发送程序,就是把从屏幕读取的年月日时分秒的日加1,再发送回时间,单片机没和屏幕连接的时候,发送的指令是5A A5 0A 80 1F 5A 00 00 00 00 01 00(因为这个时候没有读到时间),但是这样我每次运行,日不会改变,反而时分会乱码
回复

使用道具 举报

0

主题

3

回帖

258

积分

中级会员

Rank: 3Rank: 3

积分
258
发表于 2022-3-1 14:33:38 | 显示全部楼层
yeyuhang 发表于 2022-2-28 21:53
我单片机复位之后发送 5A A5 03 81 20 07  然后延迟五秒之后,启动发送程序,就是把从屏幕读取的年月日时 ...

月份和日期不能是0,还有你这个指令的长度不对,5A A5 0A 80 1F 5A 16 01 25 00 17 08 20这个指令的长度是对的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2024-11-23 09:39 , Processed in 0.059764 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表