OpenEdv-开源电子网

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

分享一个自己写的LCD1602驱动程序

[复制链接]

10

主题

109

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4895
金钱
4895
注册时间
2014-3-30
在线时间
500 小时
发表于 2016-3-19 19:30:53 | 显示全部楼层 |阅读模式
本帖最后由 jiayubao12 于 2016-3-19 19:30 编辑

注册开元网账号以来,一直在潜水,主要自己也是新手,一直在论坛上学习,真是受益匪浅!!分享一个LCD1602的驱动代码,用的是STM3210XC8T6的芯片,不是原子哥的开发板,过一段时间准备入手一个!
8.库函数-LCD1602.zip (2.37 MB, 下载次数: 15782)
IMG20160319181048.jpg
IMG20160319181017.jpg
从不在失败面前说不,你就会成为人们眼中的大神!!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2016-3-19 20:09:40 | 显示全部楼层
谢谢分享!!!继续努力
回复 支持 反对

使用道具 举报

6

主题

9

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2016-5-19
在线时间
4 小时
发表于 2016-5-19 09:20:09 | 显示全部楼层
拿走,不谢
回复 支持 反对

使用道具 举报

9

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
150
金钱
150
注册时间
2016-4-5
在线时间
55 小时
发表于 2016-5-19 09:32:32 | 显示全部楼层
3.3V能直接驱动1602吗?
回复 支持 反对

使用道具 举报

10

主题

109

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4895
金钱
4895
注册时间
2014-3-30
在线时间
500 小时
 楼主| 发表于 2016-5-19 17:19:07 | 显示全部楼层
猫先森 发表于 2016-5-19 09:32
3.3V能直接驱动1602吗?

不能!
从不在失败面前说不,你就会成为人们眼中的大神!!
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2016-9-24
在线时间
1 小时
发表于 2016-9-28 12:29:26 | 显示全部楼层
我用这个程序为什么显示方块啊?就只改了I/O而已,板子是mini板。
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
14
金钱
11
注册时间
2016-10-8
在线时间
1 小时
发表于 2016-10-8 00:11:35 | 显示全部楼层
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15|GPIO_Pin_14|GPIO_Pin_13;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;        //íÆíìêä3ö
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //IO¿úËù¶èÎa50MHz
        GPIO_Init(GPIOB, &GPIO_InitStructure);                                //3õê¼»ˉGPIB15,14,13


刚开始学stm32 能麻烦问一下为什么要初始化GPIB15,14,13吗?这三个端口用在哪呢?
回复 支持 反对

使用道具 举报

4

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
140
金钱
140
注册时间
2016-9-26
在线时间
26 小时
发表于 2016-10-8 18:00:35 | 显示全部楼层
geyuying 发表于 2016-10-8 00:11
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15|GPIO_Pin_14|GPIO_Pin_13;
        GPIO_InitStructure.GPIO_Mode = ...

这三个管脚应该是1602的EN,  RS,   RW这三个吧。
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
14
金钱
11
注册时间
2016-10-8
在线时间
1 小时
发表于 2016-10-9 16:25:31 | 显示全部楼层
a429772682 发表于 2016-10-8 18:00
这三个管脚应该是1602的EN,  RS,   RW这三个吧。

#define lcd1602_rs PBout(0)
#define lcd1602_en PBout(1)
1602的读写引脚不是这个嘛?
回复 支持 反对

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2016-10-24
在线时间
5 小时
发表于 2016-10-24 21:02:59 | 显示全部楼层
大神  为什么这个驱动程序我改成GPIOA就没法用了?
[mw_shl_code=c,true]#define lcd1602_rs PAout(0)
#define lcd1602_en PAout(1)
#define lcd1602_port_dat(x) GPIO_Write(GPIOA,x<<8); //液晶数据由GPIOB高8位送出
void lcd1602_init(void)
{
        GPIO_InitTypeDef GPIO_InitStruct;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
       
        GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
        GPIO_InitStruct.GPIO_Pin=GPIO_Pin_All;
        GPIO_InitStruct.GPIO_Speed=GPIO_Speed_10MHz;
        GPIO_Init(GPIOA, &GPIO_InitStruct);
        GPIO_Write(GPIOA, 0XFF);
               
        lcd1602_write_byte(0x38,write_cmd);//16*2显示,5*7点阵,8位数据接口
        delay_ms(100);
        lcd1602_write_byte(0x0f,write_cmd);//开显示,开光标,光标闪烁
  delay_ms(100);
        lcd1602_write_byte(0x06,write_cmd);//字符指针加1,光标加1;写一个字符整屏不移动
  delay_ms(100);
        lcd1602_write_byte(0x01,write_cmd);//清屏

}[/mw_shl_code]
回复 支持 反对

使用道具 举报

苦瓜格子 该用户已被删除
发表于 2017-5-6 11:57:24 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2015-10-30
在线时间
12 小时
发表于 2017-6-12 23:26:15 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

4

主题

37

帖子

0

精华

高级会员

Rank: 4

积分
776
金钱
776
注册时间
2017-1-23
在线时间
164 小时
发表于 2017-6-23 11:36:19 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-8-17 20:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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