4790|1

7

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

STM32 1602液晶程序无显示!求高手! [复制链接]

程序如下,急需高手指点!为什么程序下载到1602上无任何显示?

//LCD

#define   LOW_RS()    GPIOD->BRR =GPIO_Pin_6
#define   LOW_RW()    GPIOD->BRR =GPIO_Pin_5
#define   LOW_E()     GPIOD->BRR =GPIO_Pin_4 //端口位清除寄存器
#define   HI_RS()     GPIOD->BSRR=GPIO_Pin_6 //PE.0--(LCD)RS //端口位设置/清除寄存器
#define   HI_RW()     GPIOD->BSRR=GPIO_Pin_5 //PE.1--(LCD)RW
#define   HI_E()      GPIOD->BSRR=GPIO_Pin_4 //PE.2--(LCD)E 
#define   DATAOUT     GPIOG->ODR   //端口输出数据寄存器
                           //端口输入数据寄存器
                     
                                                                       
unsigned char LINE;
unsigned char ROW;
      
int LCD_DATA[12]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x2E,0x56};//要显示的ASC码,0x30为0的ASC码
int i=0;

//判断液晶屏忙
void LCD_WAIT()
{
 /* GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_7;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_Init(GPIOD, &GPIO_InitStructure); //PD口输入*/

  GPIO_InitTypeDef GPIO_InitStructure;
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_Init(GPIOG, &GPIO_InitStructure); //PG口输入
 
 LOW_RS();  //命令
 HI_RW();   //读取
 do{
     HI_E();
     Delay(1);
  LOW_E();
     Delay(1);
 }while(GPIOG->IDR & 0x80);            
  LOW_E();
 
  /*GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_7;
  GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP;
  GPIO_Init(GPIOD, &GPIO_InitStructure); //PD口OD输出*/

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;
  GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP;
  GPIO_Init(GPIOG, &GPIO_InitStructure); //PG口OD输出


}

void LCD_ENABLE(unsigned char a)
{
 LCD_WAIT();
 LOW_RS();
 LOW_RW();
 LOW_E();
 DATAOUT=a;
 HI_E();
 Delay(1);
 LOW_E();
 Delay(1);
}

void LCD_init()
{
 LCD_ENABLE(0x01);   //清屏
 LCD_ENABLE(0x38);   //2行8位数据(显示模式)
 LCD_ENABLE(0x0F);  //显示功能开,显示光标
 LCD_ENABLE(0x06);  //写入新数据后光标右移
 LCD_ENABLE(0x0C); //显示开
 LCD_ENABLE(0x80);
 LCD_ENABLE(0x18); //屏幕整体左移一格,用于滚动显示
 //LCD_ENABLE(0xC0); 
}

void LCD_DISPLAY_INIT()
{
 LINE=1;
 ROW=1;
 if(LINE==1)
 {
  LCD_ENABLE(0x80);//第一行,若为第二行,则为:LCD_ENABLE(0xc0);
 }
 else
 {
  LCD_ENABLE(0xC0);
 }
}

void LCD_DISPLAY()
 {
      while(1)
       {    
          LCD_WAIT();
          HI_RS();
          LOW_RW();
          DATAOUT=0x30;//ASC码输出到端口
          HI_E();
          Delay(1);
          LOW_E();
          Delay(1);
        }
  LCD_ENABLE(0x0C);//关闭光标,显示
  LCD_ENABLE(0x01);
        Delay(1);
 }

 

 

此帖出自stm32/stm8论坛

最新回复

楼主似乎未使能端口时钟吧  详情 回复 发表于 2011-10-3 22:38
点赞 关注
 

回复
举报

10

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
楼主似乎未使能端口时钟吧
此帖出自stm32/stm8论坛
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表