一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
楼主: qduwg
收起左侧

[51单片机] 做了一个GPS授时实验,发现日期显示莫名其妙的变化。

[复制链接]
发表于 2015-8-18 17:29 | 显示全部楼层
qduwg 发表于 2015-8-18 17:21
已经试了,改成固定的,不会受到影响。

然后再把date字符串显示年月日时间的位置改成指定字符串,然后看看显示正常不,如果正常,铁定就是受中断影响,导致接收GPS数据数据时产生了错误。
发表于 2015-8-18 17:34 | 显示全部楼层
qduwg 发表于 2015-8-18 17:21
已经试了,改成固定的,不会受到影响。

还有就是看看你的程序,我看视频是一秒刷新显示一次,问题是:只是一秒向LCD发生一次数据,还是一秒内不停的向LCD发送数据,如果1秒内不停的发送数据,显示肯定会出问题。老液晶屏芯片好,刷新频率比较高,现在有的屏就像我开始说的那问题,你发送数据稍快他就傻了。
 楼主| 发表于 2015-8-18 17:57 | 显示全部楼层
改成了一秒刷新一次,也不行。很奇怪了
我加了定时器0,
void timer0() interrupt 1
{ TH0=0;
        TL0=0;
        c++;
}

c=14时,一秒到,然后刷新显示。
.
.
while(1)
        {       
                    if(flag==1&&c==14)
                 {

          c=0;
.
.
发表于 2015-8-18 19:32 | 显示全部楼层
qduwg 发表于 2015-8-18 17:57
改成了一秒刷新一次,也不行。很奇怪了
我加了定时器0,
void timer0() interrupt 1

给液晶发送数据的函数加个延迟看看,是不是发送太快?还有就是中断导致串口接收到的数据出错了。
 楼主| 发表于 2015-8-18 20:02 | 显示全部楼层
我重新做了一个程序。已经成功了。不再乱跳了。原来的那个程序肯定有问题的。我自己新弄的一个,就好了。很稳定了。请看我的帖子吧。
 楼主| 发表于 2015-8-18 22:40 | 显示全部楼层
40560335 发表于 2015-8-18 19:32
给液晶发送数据的函数加个延迟看看,是不是发送太快?还有就是中断导致串口接收到的数据出错了。

中断会有啥影响啊?现在想不出来。肯定是有问题的。我只是无法跟踪调试。我只好另外写了一个程序。是可以的。没有那个问题了。很稳定的。
发表于 2015-8-18 22:49 | 显示全部楼层
qduwg 发表于 2015-8-18 22:40
中断会有啥影响啊?现在想不出来。肯定是有问题的。我只是无法跟踪调试。我只好另外写了一个程序。是可以 ...

中断会导致正在接受中的串口数据错乱。
 楼主| 发表于 2015-8-18 22:51 | 显示全部楼层
波特率等参数都是符合的。为什么会导致错乱了?真是奇怪了。再说,中断服务程序实际执行的也不长啊。不会耽误太多时间的。
 楼主| 发表于 2015-8-19 09:21 | 显示全部楼层
源码已经附在第一楼的帖子里面了。请下载实验。
 楼主| 发表于 2015-8-19 09:22 | 显示全部楼层
40560335 发表于 2015-8-18 22:49
中断会导致正在接受中的串口数据错乱。

源码附在第一楼的帖子里面了。可以下载实验了。呵呵

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-7 05:49 , Processed in 0.048042 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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