OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3942|回复: 6

小弟搞了个简单的1602模块还是很久调试不成功 特来请教 刚学不久

[复制链接]

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-4-2
在线时间
0 小时
发表于 2015-4-2 13:46:53 | 显示全部楼层 |阅读模式
5金钱
截取如下重要代码

#ifndef __LCD1602_H
#define __LCD1602_H  
#include "sys.h"

#define Lcd1602_RS   PDout(0)
#define Lcd1602_RW   PDout(1)
#define Lcd1602_E    Dout(2)
#define Lcd1602_Busy PFout(7)
  
void Lcd_TestBusy(void);
void Lcd1602_Write_Com(u8 com);
void Lcd1602_Write_Data(u8 date);
void Lcd1602_Init(void);
void Lcd1602_GPIO_Init(void);

#endif


#include "lcd1602.h"
#include "delay.h"
#include "sys.h"

void Lcd1602_GPIO_Init(void)
{
GPIO_InitTypeDef  GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOF, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;  
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;  
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
GPIO_Init(GPIOF, &GPIO_InitStructure);    

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2;    
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
GPIO_Init(GPIOD, &GPIO_InitStructure);  
}

void Lcd_TestBusy(void)
{
GPIO_Write(GPIOF,0xff);
Lcd1602_RS=0;
    Lcd1602_RW=1;
    Lcd1602_E=1;
while(Lcd1602_Busy);
Lcd1602_E=0;
}

void Lcd1602_Write_Com(u8 com)
{
 Lcd_TestBusy();
 GPIO_Write(GPIOF,com);
 Lcd1602_RS=0;
      Lcd1602_RW=0;
      Lcd1602_E=0;
 delay_us(10);
 Lcd1602_E=1;
 delay_us(10);
 Lcd1602_E=0;

}

void Lcd1602_Write_Data(u8 date)
{
      Lcd_TestBusy();
 GPIO_Write(GPIOF,date);
 Lcd1602_RS=1;
      Lcd1602_RW=0;
      Lcd1602_E=0;
 delay_us(10);
 Lcd1602_E=1;
 delay_us(10);
 Lcd1602_E=0;


void Lcd1602_Init(void)
{
      Lcd1602_Write_Com(0x38);  //设置显示模式 
 Lcd1602_Write_Com(0x0c);  //开启显示,不开光标,光标不闪烁
 Lcd1602_Write_Com(0x06);  //数据指针加1
 Lcd1602_Write_Com(0x01);  //清屏
 Lcd1602_Write_Com(0x80);  //设置数据指针起点
}


/****************************************************
*** 0x0c 开启显示,不开光标,光标不闪烁 
*** 0x0f 开启显示,  开光标,光标  闪烁
*** 0x0e 开启显示,  开光标,光标不闪烁
*** 0x06 数据指针向“右”移动加1
*** 0x04 数据指针向“左”移动加1
****************************************************/ 


主函数 

#include "lcd1602.h"
#include "delay.h"
#include "sys.h"

int main(void)
 {
delay_init();  
Lcd1602_GPIO_Init();   
Lcd1602_Init();
while(1)
{
    Lcd1602_Write_Com(0x80);
  Lcd1602_Write_Data(6);
delay_us(10);
}

}








最佳答案

查看完整内容[请看2#楼]

论坛里有, 参考一下http://www.openedv.com/posts/list/14393.htm#79054 http://www.openedv.com/posts/list/11370.htm#79575
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

33

主题

481

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
5075
金钱
5075
注册时间
2013-10-4
在线时间
654 小时
发表于 2015-4-2 13:46:54 | 显示全部楼层
论坛里有,
参考一下http://www.openedv.com/posts/list/14393.htm#79054
http://www.openedv.com/posts/list/11370.htm#79575
回复

使用道具 举报

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-4-2
在线时间
0 小时
 楼主| 发表于 2015-4-2 16:52:58 | 显示全部楼层
怎么没人理我 伤心
回复

使用道具 举报

14

主题

490

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1229
金钱
1229
注册时间
2012-8-4
在线时间
248 小时
发表于 2015-4-2 17:28:09 | 显示全部楼层
坛主开发板没有这个外设的,所以玩的人也比较小了,多搜搜吧
nrf51822蓝牙4.0手环开发板: 淘宝小店
回复

使用道具 举报

14

主题

1592

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2622
金钱
2622
注册时间
2014-7-17
在线时间
350 小时
发表于 2015-4-2 18:39:24 | 显示全部楼层
LCD是stm32驱动的吗?
回复

使用道具 举报

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-4-2
在线时间
0 小时
 楼主| 发表于 2015-4-3 00:03:11 | 显示全部楼层
一个模块把?!
回复

使用道具 举报

1

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2012-10-3
在线时间
17 小时
发表于 2015-4-3 09:07:31 | 显示全部楼层
首先 1: 你的液晶是 3.3V 还是 5V 的 
       2:你那个检测信号因该设置成上拉输入
       3:你可以加上延时自己仿真一下
相信自己,一切皆有可能!
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-24 03:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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