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 ...