STM32驅動LCD1602程式(除錯已成功)

2021-10-08 14:40:11 字數 3211 閱讀 8649

io接線:

rs pa8

rw pb6

e pb7

lcd1602_io pb8-pb15

所有的口都配置成開漏輸出,並且所有的口都通過10k電阻上拉至5v,部分電路圖如下:

程式**

lcd1602.c

#include

"lcd1602.h"

void

lcd1602_gpio_init_out()

//lcd1602埠初始化,配置為輸出

void

lcd1602_gpio_init_inupt()

//lcd1602埠初始化,配置為輸入

void

lcd1602_waitready

(void

)//用於lcd忙檢測

while

(sta)

;lcd1602_gpio_init_out()

;//lcd1602埠初始化,配置為輸出

}void

lcd1602_writecmd

(u16 cmd)

//用於寫指令

void

lcd1602_writedate

(u16 date)

//用於寫資料

void

lcd1620_setaddress

(unsigned

char x,

unsigned

char y)

void

lcd1602_showstr

(unsigned

char x,

unsigned

char y,

unsigned

char

*str)

//lcd1602顯示字串

void

lcd1602_showchar

(unsigned

char x,

unsigned

char y,

unsigned

char date)

//lcd1602顯示字元

void

lcd1602_shownum

(unsigned

char x,

unsigned

char y,

unsigned

char

*str,

unsigned

char i)

//lcd1602顯示數字

void

lcd1602_init

(void

)//液晶初始化函式

lcd1602.h

#ifndef __lcd1602_h

#define __lcd1602_h

#include

"sys.h"

#include

"stm32f10x.h"

#define lcd1602_timer_gpioa rcc_apb2periph_gpioa

#define lcd1602_timer_gpiob rcc_apb2periph_gpiob

#define lcd1602_gpioa gpioa

#define lcd1602_gpiob gpiob

#define lcd1602_rs gpio_pin_8

#define lcd1602_rw gpio_pin_6

#define lcd1602_e gpio_pin_7

#define lcd1602_io gpio_pin_8 | gpio_pin_9 | gpio_pin_10 | gpio_pin_11 | gpio_pin_12 | gpio_pin_13 | gpio_pin_14 | gpio_pin_15

#define lcd1602_i0_set() gpio_setbits(gpiob, lcd1602_io)

#define lcd1602_rs_set() gpio_setbits(gpioa,lcd1602_rs)

#define lcd1602_rs_reset() gpio_resetbits(gpioa,lcd1602_rs)

#define lcd1602_rw_set() gpio_setbits(gpiob,lcd1602_rw)

#define lcd1602_rw_reset() gpio_resetbits(gpiob,lcd1602_rw)

#define lcd1602_e_set() gpio_setbits(gpiob,lcd1602_e)

#define lcd1602_e_reset() gpio_resetbits(gpiob,lcd1602_e)

void

lcd1602_init

(void);

//液晶初始化函式

void

lcd1602_shownum

(unsigned

char x,

unsigned

char y,

unsigned

char

*str,

unsigned

char i)

;//lcd1602顯示數字

void

lcd1602_showstr

(unsigned

char x,

unsigned

char y,

unsigned

char

*str)

;//lcd1602顯示字串

#endif

程式移植時,只需要改.**件程式,以及.c檔案中的

sta =

gpio_readinputdatabit

(lcd1602_gpiob, gpio_pin_15)

;gpiob->odr &=(

(cmd<<8)

|0x0000);

gpiob->odr &=(

(date <<8)

|0x0000

);

將其配置成你所需要的管腳即可。

STM32學習 LCD的使用

原理 lcd即液晶顯示器,給液晶施加電場,會改變它的分子排列,從而改變光線傳播方向,配合偏振光片,它就具有控制光線透過率的作用,再配合彩色濾光片,就能改變某一顏色透光量的多少。做出可控紅 綠 藍光輸出強度的顯示結構,組成乙個顯示單位,通過控制紅綠藍的強度,可以使該單位混合輸出不同的色彩,這樣的乙個顯...

STM32中LCD顯示少量漢字

以下程式主要針對stm32中庫函式進行操作 在lcd顯示漢字,首先需要對漢字進行取模,我們都知道乙個漢字所占用的空間大小是2b。接下來通過取模軟體對所需要顯示的漢字進行取模 注意有的取模軟體可能存在問題 在這我們要補充乙個知識就是漢字在計算機中儲存形式 輸入碼 漢字的字數繁多,字形複雜,常用的漢字有...

STM32學習筆記(五)LCD函式

x,y 起點座標 len 小數點後的位數 size 字型大小,此處省略,預設1608字型 color 顏色,此處僅保留前景色,可自行修改 num 數值 0 4294967295 void lcd shownum u16 x,u16 y,float num,u8 len,u16 color html ...