找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 33463|回复: 77
打印 上一主题 下一主题
收起左侧

stm32驱动lcd1602液晶方式 程序调试成功

  [复制链接]
跳转到指定楼层
楼主
最近在搞DIY小玩意 用到了lcd1602液晶显示 最后调试成功,希望对有需要的人有所帮助!



1602液晶驱动程序的主要部分:
  1. #include "lcd1602.h"
  2. #include "delay.h"
  3. #include "stdio.h"
  4. void GPIO_Configuration(void)
  5. {
  6.         GPIO_InitTypeDef        GPIO_InitStructure;
  7.         
  8.         RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOD,ENABLE);//使能PB,PD端口时钟

  9.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
  10.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; //普通输出模式
  11.     GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //推挽输出
  12.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //IO口速度为50MHz
  13.         GPIO_Init(GPIOD, &GPIO_InitStructure);                                //初始化GPIOD0~7

  14.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2;
  15.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; //普通输出模式
  16.     GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //推挽输出
  17.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //IO口速度为50MHz
  18.         GPIO_Init(GPIOB, &GPIO_InitStructure);                                //初始化GPIB15,14,13
  19. }

  20. /* 等待液晶准备好 */
  21. void LCD1602_Wait_Ready(void)
  22. {
  23.         u8 sta;
  24.         
  25.         DATAOUT(0xff);
  26.         LCD_RS_Clr();
  27.         LCD_RW_Set();
  28.         do
  29.         {
  30.                 LCD_EN_Set();
  31.                 delay_ms(5);        //延时5ms,非常重要
  32.                  sta = GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_7);//读取状态字
  33.                 LCD_EN_Clr();
  34.         }while(sta & 0x80);//bit7等于1表示液晶正忙,重复检测直到其等于0为止
  35. }

  36. /* 向LCD1602液晶写入一字节命令,cmd-待写入命令值 */
  37. void LCD1602_Write_Cmd(u8 cmd)
  38. {
  39.         LCD1602_Wait_Ready();
  40.         LCD_RS_Clr();
  41.         LCD_RW_Clr();
  42.         DATAOUT(cmd);
  43.         LCD_EN_Set();
  44.         LCD_EN_Clr();
  45.     //printf("%d",cmd);
  46. }

  47. /* 向LCD1602液晶写入一字节数据,dat-待写入数据值 */
  48. void LCD1602_Write_Dat(u8 dat)
  49. {
  50.         LCD1602_Wait_Ready();
  51.         LCD_RS_Set();
  52.         LCD_RW_Clr();
  53.         DATAOUT(dat);
  54.         LCD_EN_Set();
  55.         LCD_EN_Clr();
  56. }

  57. /* 清屏 */
  58. void LCD1602_ClearScreen(void)
  59. {
  60.         LCD1602_Write_Cmd(0x01);
  61. }

  62. /* 设置显示RAM起始地址,亦即光标位置,(x,y)-对应屏幕上的字符坐标 */
  63. void LCD1602_Set_Cursor(u8 x, u8 y)
  64. {
  65.         u8 addr;
  66.         
  67.         if (y == 0)
  68.                 addr = 0x00 + x;
  69.         else
  70.                 addr = 0x40 + x;
  71.         LCD1602_Write_Cmd(addr | 0x80);
  72. }

  73. /* 在液晶上显示字符串,(x,y)-对应屏幕上的起始坐标,str-字符串指针 */
  74. void LCD1602_Show_Str(u8 x, u8 y, u8 *str)
  75. {
  76.         LCD1602_Set_Cursor(x, y);
  77.         while(*str != '\0')
  78.         {
  79.                 LCD1602_Write_Dat(*str++);
  80.         }
  81. }

  82. /* 初始化1602液晶 */
  83. void LCD1602_Init(void)
  84. {
  85.     GPIO_Configuration();
  86.         LCD1602_Write_Cmd(0x38);        //16*2显示,5*7点阵,8位数据口
  87.         LCD1602_Write_Cmd(0x0c);        //开显示,光标关闭
  88.         LCD1602_Write_Cmd(0x06);        //文字不动,地址自动+1
  89.         LCD1602_Write_Cmd(0x01);        //清屏

  90. //    LCD1602_Write_Cmd(0X02);               
  91. //    LCD1602_Write_Cmd(0X06);            
  92. //        LCD1602_Write_Cmd(0X00);              
  93. //        LCD1602_Write_Cmd(0X0C);

  94. //        LCD1602_Write_Cmd(0X38);              
  95. //        LCD1602_Write_Cmd(0x01);               
  96.   
  97. }

复制代码

下载:
lcd1602显示.7z (294.08 KB, 下载次数: 1485)



评分

参与人数 4黑币 +20 收起 理由
z72287 + 5 很给力!
zqs222 + 5 很给力!
sdfasfsdfsdf + 5 很给力!
cheeselala + 5 很给力!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏16 分享淘帖 顶5 踩
回复

使用道具 举报

来自 2#
ID:220748 发表于 2018-12-12 21:27 | 只看该作者
祝贺stm32驱动lcd1602液晶方式程序调试成功!
但没有看见电路图,所以不知液晶显示什么?输入什么信号?看标题好像是检测指纹,对么?
1602液晶数据端口接到STM32d的什么引脚?
回复

使用道具 举报

来自 3#
ID:220748 发表于 2018-12-13 20:50 | 只看该作者
编译时出现两个错误,请帮助解决!









谢谢!!
回复

使用道具 举报

地板
ID:105355 发表于 2017-4-17 20:22 | 只看该作者
f407...................................
回复

使用道具 举报

5#
ID:190672 发表于 2017-4-17 23:51 | 只看该作者
谢谢分享,学习了!
回复

使用道具 举报

6#
ID:148108 发表于 2017-5-25 21:19 | 只看该作者
谢谢楼主。帮了大忙
回复

使用道具 举报

7#
ID:221735 发表于 2017-7-23 15:15 | 只看该作者
谢谢楼主!!
回复

使用道具 举报

8#
ID:91163 发表于 2017-7-23 20:19 | 只看该作者
stm32这么快,搞1602怪浪费的
回复

使用道具 举报

9#
ID:241124 发表于 2017-10-19 22:55 | 只看该作者
谢谢分享!!!
回复

使用道具 举报

10#
ID:242484 发表于 2017-10-24 16:46 | 只看该作者
刚刚好用到
回复

使用道具 举报

11#
ID:233664 发表于 2017-12-9 13:09 | 只看该作者
显示一个变量行吗?
回复

使用道具 举报

12#
ID:259891 发表于 2017-12-11 09:33 | 只看该作者

谢谢分享 正好需要
回复

使用道具 举报

13#
ID:275121 发表于 2018-1-13 20:24 | 只看该作者
非常感谢,
回复

使用道具 举报

14#
ID:279429 发表于 2018-1-25 14:44 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

15#
ID:279429 发表于 2018-1-25 15:09 | 只看该作者
非常感谢
回复

使用道具 举报

16#
ID:234038 发表于 2018-1-28 21:23 | 只看该作者
谢谢啦  刚好要用 试试看
回复

使用道具 举报

17#
ID:283718 发表于 2018-2-11 20:08 | 只看该作者
支持支持
回复

使用道具 举报

18#
ID:272345 发表于 2018-2-28 09:56 | 只看该作者
谢谢楼主
回复

使用道具 举报

19#
ID:297898 发表于 2018-3-28 15:13 | 只看该作者
用不了啊,我rw直接接地的,只用于显示。就把有关rw的全注释了,对应的脚也改了,尝试了几次什么都没显示。
回复

使用道具 举报

20#
ID:287482 发表于 2018-4-2 17:09 | 只看该作者
谢谢楼主  帮了大忙
回复

使用道具 举报

21#
ID:301675 发表于 2018-4-7 12:30 | 只看该作者
谢谢分享
回复

使用道具 举报

22#
ID:284518 发表于 2018-4-10 09:50 | 只看该作者
感谢楼主分享,非常感谢
回复

使用道具 举报

23#
ID:305418 发表于 2018-4-10 20:25 | 只看该作者
感谢楼主!
回复

使用道具 举报

24#
ID:306466 发表于 2018-4-12 11:16 | 只看该作者
谢谢楼主分享,正好需要用到
回复

使用道具 举报

25#
ID:315667 发表于 2018-4-24 20:20 | 只看该作者
谢谢!非常需要!
回复

使用道具 举报

26#
ID:326724 发表于 2018-5-10 12:31 | 只看该作者
谢分享
回复

使用道具 举报

27#
ID:326772 发表于 2018-5-10 13:43 | 只看该作者
谢谢分享,学习了!
回复

使用道具 举报

28#
ID:290647 发表于 2018-5-21 15:39 | 只看该作者
谢谢。。。很棒
回复

使用道具 举报

29#
ID:319334 发表于 2018-6-5 15:07 | 只看该作者
非常感谢
回复

使用道具 举报

30#
ID:367898 发表于 2018-7-9 13:41 | 只看该作者
需要下载看看
回复

使用道具 举报

31#
ID:368558 发表于 2018-7-10 11:27 | 只看该作者
谢谢楼主很给力
回复

使用道具 举报

32#
ID:375746 发表于 2018-7-20 12:40 | 只看该作者
谢谢楼主
回复

使用道具 举报

33#
ID:376963 发表于 2018-7-21 22:39 | 只看该作者
感谢楼主,好人一生平安
回复

使用道具 举报

34#
ID:380780 发表于 2018-7-30 11:21 | 只看该作者
感谢,好用了再夸奖
回复

使用道具 举报

35#
ID:372701 发表于 2018-8-2 16:04 | 只看该作者
很给力
回复

使用道具 举报

36#
ID:372701 发表于 2018-8-2 16:07 | 只看该作者
感谢大佬
回复

使用道具 举报

37#
ID:384753 发表于 2018-8-10 20:02 | 只看该作者
唉  没黑币啊
回复

使用道具 举报

38#
ID:218309 发表于 2018-9-11 13:36 | 只看该作者
做一个数据是4线的
回复

使用道具 举报

39#
ID:390236 发表于 2018-9-11 14:45 | 只看该作者
谢谢楼主
回复

使用道具 举报

40#
ID:403971 发表于 2018-9-29 11:37 | 只看该作者
感谢楼主分享!
回复

使用道具 举报

41#
ID:420871 发表于 2018-11-5 09:25 | 只看该作者
感谢楼主分享!
回复

使用道具 举报

42#
ID:259517 发表于 2018-11-8 21:16 | 只看该作者
很好,资料不错,谢谢分享
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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