標(biāo)題: stm32驅(qū)動(dòng)lcd1602液晶方式 程序調(diào)試成功 [打印本頁(yè)]

作者: 做個(gè)好菜鳥(niǎo)    時(shí)間: 2017-4-17 15:48
標(biāo)題: stm32驅(qū)動(dòng)lcd1602液晶方式 程序調(diào)試成功
最近在搞DIY小玩意 用到了lcd1602液晶顯示 最后調(diào)試成功,希望對(duì)有需要的人有所幫助!



1602液晶驅(qū)動(dòng)程序的主要部分:
  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端口時(shí)鐘

  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. /* 等待液晶準(zhǔn)備好 */
  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);        //延時(shí)5ms,非常重要
  32.                  sta = GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_7);//讀取狀態(tài)字
  33.                 LCD_EN_Clr();
  34.         }while(sta & 0x80);//bit7等于1表示液晶正忙,重復(fù)檢測(cè)直到其等于0為止
  35. }

  36. /* 向LCD1602液晶寫(xiě)入一字節(jié)命令,cmd-待寫(xiě)入命令值 */
  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液晶寫(xiě)入一字節(jié)數(shù)據(jù),dat-待寫(xiě)入數(shù)據(jù)值 */
  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. /* 設(shè)置顯示RAM起始地址,亦即光標(biāo)位置,(x,y)-對(duì)應(yīng)屏幕上的字符坐標(biāo) */
  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)-對(duì)應(yīng)屏幕上的起始坐標(biāo),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點(diǎn)陣,8位數(shù)據(jù)口
  87.         LCD1602_Write_Cmd(0x0c);        //開(kāi)顯示,光標(biāo)關(guān)閉
  88.         LCD1602_Write_Cmd(0x06);        //文字不動(dòng),地址自動(dòng)+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. }

復(fù)制代碼

下載:
lcd1602顯示.7z (294.08 KB, 下載次數(shù): 1492)




作者: 5511hh    時(shí)間: 2017-4-17 20:22
f407...................................
作者: guodiqing    時(shí)間: 2017-4-17 23:51
謝謝分享,學(xué)習(xí)了!
作者: Boeing_777x    時(shí)間: 2017-5-25 21:19
謝謝樓主。幫了大忙
作者: 17854172261    時(shí)間: 2017-7-23 15:15
謝謝樓主。
作者: 淡定的H羊    時(shí)間: 2017-7-23 20:19
stm32這么快,搞1602怪浪費(fèi)的
作者: mitosis    時(shí)間: 2017-10-19 22:55
謝謝分享!。
作者: echo.meme    時(shí)間: 2017-10-24 16:46
剛剛好用到
作者: 小小亮    時(shí)間: 2017-12-9 13:09
顯示一個(gè)變量行嗎?
作者: ty.nttn    時(shí)間: 2017-12-11 09:33

謝謝分享 正好需要
作者: zhukenan    時(shí)間: 2018-1-13 20:24
非常感謝,
作者: zhangxiaoyi    時(shí)間: 2018-1-25 14:44
謝謝樓主分享
作者: zhangxiaoyi    時(shí)間: 2018-1-25 15:09
非常感謝
作者: 13476011951    時(shí)間: 2018-1-28 21:23
謝謝啦  剛好要用 試試看
作者: MrCyN    時(shí)間: 2018-2-11 20:08
支持支持

作者: 納蘭小宇    時(shí)間: 2018-2-28 09:56
謝謝樓主
作者: Feifei.    時(shí)間: 2018-3-28 15:13
用不了啊,我rw直接接地的,只用于顯示。就把有關(guān)rw的全注釋了,對(duì)應(yīng)的腳也改了,嘗試了幾次什么都沒(méi)顯示。

作者: Miracle556    時(shí)間: 2018-4-2 17:09
謝謝樓主  幫了大忙
作者: 940945176    時(shí)間: 2018-4-7 12:30
謝謝分享
作者: YYYYYurnero    時(shí)間: 2018-4-10 09:50
感謝樓主分享,非常感謝
作者: 法式油炸薯?xiàng)l    時(shí)間: 2018-4-10 20:25
感謝樓主!
作者: doctorwang1988    時(shí)間: 2018-4-12 11:16
謝謝樓主分享,正好需要用到
作者: cheeselala    時(shí)間: 2018-4-24 20:20
謝謝!非常需要!
作者: vici    時(shí)間: 2018-5-10 12:31
謝分享
作者: 928526287    時(shí)間: 2018-5-10 13:43
謝謝分享,學(xué)習(xí)了!
作者: ftd東良    時(shí)間: 2018-5-21 15:39
謝謝。。。很棒
作者: 天下1314    時(shí)間: 2018-6-5 15:07
非常感謝
作者: shuoz    時(shí)間: 2018-7-9 13:41
需要下載看看
作者: zh98326    時(shí)間: 2018-7-10 11:27
謝謝樓主很給力
作者: 123123hh    時(shí)間: 2018-7-20 12:40
謝謝樓主
作者: lcsmile03    時(shí)間: 2018-7-21 22:39
感謝樓主,好人一生平安
作者: shixitiankong    時(shí)間: 2018-7-30 11:21
感謝,好用了再夸獎(jiǎng)
作者: 好寶寶    時(shí)間: 2018-8-2 16:04
很給力
作者: 好寶寶    時(shí)間: 2018-8-2 16:07
感謝大佬
作者: 321ls    時(shí)間: 2018-8-10 20:02
唉  沒(méi)黑幣啊

作者: tang200858    時(shí)間: 2018-9-11 13:36
做一個(gè)數(shù)據(jù)是4線的
作者: lcy960    時(shí)間: 2018-9-11 14:45
謝謝樓主
作者: Addan    時(shí)間: 2018-9-29 11:37
感謝樓主分享!
作者: SHENG168    時(shí)間: 2018-11-5 09:25
感謝樓主分享!
作者: liufei123456    時(shí)間: 2018-11-8 21:16
很好,資料不錯(cuò),謝謝分享
作者: wdliming    時(shí)間: 2018-11-13 08:39
技多不壓身,謝謝~~~
作者: 610213748    時(shí)間: 2018-11-17 20:56
可以參考參考
作者: @1234567890    時(shí)間: 2018-11-26 15:28
有點(diǎn)問(wèn)題

作者: lanhua520    時(shí)間: 2018-12-12 21:27
祝賀stm32驅(qū)動(dòng)lcd1602液晶方式程序調(diào)試成功!
但沒(méi)有看見(jiàn)電路圖,所以不知液晶顯示什么?輸入什么信號(hào)?看標(biāo)題好像是檢測(cè)指紋,對(duì)么?
1602液晶數(shù)據(jù)端口接到STM32d的什么引腳?
作者: lanhua520    時(shí)間: 2018-12-13 20:50
編譯時(shí)出現(xiàn)兩個(gè)錯(cuò)誤,請(qǐng)幫助解決!









謝謝。

作者: cyrs    時(shí)間: 2018-12-13 22:25
都能調(diào)試程序了,我還在學(xué)習(xí)
作者: Sir_Diego    時(shí)間: 2019-1-23 14:34
這個(gè)是真能用,值得這5黑幣。。這兩天移植到HAL庫(kù)上,搞了兩天都沒(méi)弄好,希望這個(gè)能有所幫助。謝謝樓主分享
作者: z72287    時(shí)間: 2019-2-14 15:00
感謝樓主分享
作者: 1059180904    時(shí)間: 2019-2-16 09:02
下載看看
作者: billboy    時(shí)間: 2019-2-16 09:16
謝謝樓主分享
作者: shifeng88    時(shí)間: 2019-2-16 21:33
資料很好,非常感謝樓主的分享!
作者: queen1210    時(shí)間: 2019-4-1 00:45
好厲害
作者: 流星雨掉到地球    時(shí)間: 2019-4-1 09:50
很不錯(cuò)
作者: 流星雨掉到地球    時(shí)間: 2019-4-1 09:51
很不錯(cuò)
作者: 3wangjianqun3    時(shí)間: 2019-4-5 15:20
感謝分享
作者: daniel223    時(shí)間: 2019-4-10 12:49
需要看一下
作者: 陽(yáng)光下的BOY    時(shí)間: 2019-4-12 17:52
學(xué)習(xí)了,下轄
作者: pm1981    時(shí)間: 2019-5-8 09:34
先下載看看學(xué)習(xí)一下,謝謝樓主
作者: 黑暗峰    時(shí)間: 2019-5-26 21:18
有沒(méi)有STM32F103的
作者: Liya小魚(yú)    時(shí)間: 2019-6-27 12:09
剛好需要  非常感謝
作者: 啦啦啦131478    時(shí)間: 2019-6-27 20:47
非常感謝,非常有幫助
作者: pm1981    時(shí)間: 2019-7-12 14:50
不錯(cuò),線學(xué)習(xí)一下
作者: zp17777    時(shí)間: 2019-7-23 21:43
不錯(cuò),正好需要,看看能不能用
作者: witp    時(shí)間: 2019-7-25 14:14

很好,資料不錯(cuò),謝謝分享
作者: 有城無(wú)墻    時(shí)間: 2019-7-25 16:24
謝謝分享,學(xué)習(xí)了!
作者: ZYL1234567    時(shí)間: 2019-8-14 17:07
為什么等待液晶準(zhǔn)備時(shí),將數(shù)據(jù)端口全置為1呢?DATAOUT(0xff)#define        DATAOUT(x)        GPIO_Write(GPIOD, x)
作者: 18660570270    時(shí)間: 2019-9-25 09:44
學(xué)習(xí)一下
作者: jjm878189812    時(shí)間: 2019-11-14 14:05
很給力!
作者: ywc3000    時(shí)間: 2019-12-4 15:47
好東西,可以看下么?
作者: 哈一一    時(shí)間: 2019-12-26 08:29
非常感謝分享
作者: longer1997    時(shí)間: 2019-12-26 13:56
高手,這是高手
作者: LiUCONG520    時(shí)間: 2020-4-11 16:56
這個(gè)程序是移植的金沙灘51里面的,雖然能用但是代碼有點(diǎn)問(wèn)題,sta = GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_7);//讀取狀態(tài)字 while(sta & 0x80);這個(gè)循環(huán)沒(méi)有意義
作者: zltxiaokeai    時(shí)間: 2020-4-16 16:05
很有用                                                                                                                                                                           
作者: gemxie    時(shí)間: 2020-8-12 18:09
下載看看可不可以先
作者: jhx6969    時(shí)間: 2021-3-17 19:18
lanhua520 發(fā)表于 2018-12-13 20:50
編譯時(shí)出現(xiàn)兩個(gè)錯(cuò)誤,請(qǐng)幫助解決!

加個(gè)void就行了

作者: jhtdjtfy    時(shí)間: 2021-5-20 18:54
線都接好了,為啥它不亮,它不亮,不亮,亮啊.....
作者: gemxie    時(shí)間: 2022-3-31 12:02
lanhua520 發(fā)表于 2018-12-13 20:50
編譯時(shí)出現(xiàn)兩個(gè)錯(cuò)誤,請(qǐng)幫助解決!

還有錯(cuò)誤去??




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1