打印
[STM8]

求助!为什么用STM8驱动LCD12864程序死在忙检测上面?

[复制链接]
1785|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
whirt_noob|  楼主 | 2016-11-15 23:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为什么程序一直死在忙信号检测这句?液晶是好的,不管是加了延时还是不加延时液晶都不会显示,程序一直死在忙信号检测,
这个是检测忙的函数,RS_CMD已经定义成0了
void  ST7920_WaitBusy ()                           //判忙
{
  while (M6800_Read (RS_CMD)&0x80);
}
这个是读函数
u8 M6800_Read  (u8 ucAddr)                       //读出数据
{
     u8 ucData=0;
     BUS6800_In ();            //总线设置成输入模式
     Bus6800_Delay(10);            /* 延迟 */
     if(ucAddr==0)
         {
              M6800_RS_0 ;             //指令模式
         }
     else
         {
              M6800_RS_1 ;             //数据模式
         }
         Bus6800_Delay(1);            /* 必须延迟 */
    M6800_RW_1;                  //选择读数据
    Bus6800_Delay(1);            /* 必须延迟 */
    M6800_EN_1;
    Bus6800_Delay(1);            /* 必须延迟 */
    ucData=M6800_Input;
    MP6800_EN_0;
    Bus6800_Delay(1);            /* 必须延迟 */
   
    BUS6800_Out ();           //总线设置成输出模式   
    return (ucData);
}


不知道什么原因就是没有显示,注释掉检测忙函数用延时代替也一样不显示,
求大神指点一下是什么地方出了问题?


沙发
whirt_noob|  楼主 | 2016-11-15 23:46 | 只看该作者
求指点啊

使用特权

评论回复
板凳
whirt_noob|  楼主 | 2016-11-16 08:20 | 只看该作者
我顶

使用特权

评论回复
地板
xyz549040622| | 2016-11-16 08:58 | 只看该作者
那应该就是初始化的问题吧。有两种可能
1.IO的初始化没做好
2.延时函数不对,时间不够

使用特权

评论回复
5
yichunshan| | 2016-11-16 09:47 | 只看该作者
你测量忙信号了吗?

使用特权

评论回复
6
whirt_noob|  楼主 | 2016-11-16 20:55 | 只看该作者
xyz549040622 发表于 2016-11-16 08:58
那应该就是初始化的问题吧。有两种可能
1.IO的初始化没做好
2.延时函数不对,时间不够 ...

RS  RW  和使能引脚是不是都要设置成推挽输出?

使用特权

评论回复
7
whirt_noob|  楼主 | 2016-11-16 20:56 | 只看该作者
yichunshan 发表于 2016-11-16 09:47
你测量忙信号了吗?

程序一直停在忙信号检测上

使用特权

评论回复
8
airwill| | 2016-11-16 20:57 | 只看该作者
我看先验证一下通信时序吧

使用特权

评论回复
9
whtwhtw| | 2016-11-16 22:39 | 只看该作者
时序不对,液晶根本都没初始化成功

使用特权

评论回复
10
whirt_noob|  楼主 | 2016-11-19 10:27 | 只看该作者
xyz549040622 发表于 2016-11-16 08:58
那应该就是初始化的问题吧。有两种可能
1.IO的初始化没做好
2.延时函数不对,时间不够 ...

确实是这样的,程序在运行到初始化液晶的时候,同时也把频率从2M初始化成了16M,造成延时不够了

使用特权

评论回复
11
whirt_noob|  楼主 | 2016-11-19 10:28 | 只看该作者
whtwhtw 发表于 2016-11-16 22:39
时序不对,液晶根本都没初始化成功

确实是这样,多谢啊

使用特权

评论回复
12
whirt_noob|  楼主 | 2016-11-19 10:29 | 只看该作者
airwill 发表于 2016-11-16 20:57
我看先验证一下通信时序吧

解决了,是延时的问题

使用特权

评论回复
13
whirt_noob|  楼主 | 2016-11-19 10:31 | 只看该作者
yichunshan 发表于 2016-11-16 09:47
你测量忙信号了吗?

测试了的,程序就是死在忙检测上

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:永远保持一颗充满激情的心

16

主题

286

帖子

8

粉丝