完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include "STM32f10x_gpio.h"
#include "lcd.h" GPIO_InitTypeDef GPIO_InitStructure; void LCD_PortSet(void) { GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; GPIO_Init(GPIOC,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; GPIO_Init(GPIOC,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; GPIO_Init(GPIOC,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; GPIO_Init(GPIOC,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_Init(GPIOC,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; GPIO_Init(GPIOA,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3; GPIO_Init(GPIOA,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; GPIO_Init(GPIOB,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_Init(GPIOB,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_Init(GPIOB,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; GPIO_Init(GPIOB,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; GPIO_Init(GPIOB,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_Init(GPIOB,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14; GPIO_Init(GPIOB,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; GPIO_Init(GPIOB,&GPIO_InitStructure); } void LCD_SelectChip1(void) { GPIO_WriteBit(GPIOA,LCD_CS2,Bit_SET); GPIO_WriteBit(GPIOA,LCD_CS3,Bit_SET); GPIO_WriteBit(GPIOC,LCD_CS1,Bit_RESET); } void LCD_SelectChip2(void) { GPIO_WriteBit(GPIOC,LCD_CS1,Bit_SET); GPIO_WriteBit(GPIOA,LCD_CS3,Bit_SET); GPIO_WriteBit(GPIOA,LCD_CS2,Bit_RESET); } void LCD_SelectChip3(void) { GPIO_WriteBit(GPIOC,LCD_CS1,Bit_SET); GPIO_WriteBit(GPIOA,LCD_CS2,Bit_SET); GPIO_WriteBit(GPIOA,LCD_CS3,Bit_RESET); } void LCD_WriteCmd(u8 cmd) { GPIO_WriteBit(GPIOC,LCD_RS,Bit_RESET); GPIO_WriteBit(GPIOC,LCD_RW,Bit_RESET); LCD_DATA(cmd); GPIO_WriteBit(GPIOC,LCD_EN,Bit_SET); delay_ms(100); GPIO_WriteBit(GPIOC,LCD_EN,Bit_RESET); } void LCD_WriteData(u8 data) { GPIO_WriteBit(GPIOC,LCD_RS,Bit_SET); GPIO_WriteBit(GPIOC,LCD_RW,Bit_RESET); LCD_DATA(data); GPIO_WriteBit(GPIOC,LCD_EN,Bit_SET); delay_us(100); GPIO_WriteBit(GPIOC,LCD_EN,Bit_RESET); } //ÇåÆÁº¯Êý void LCD_Clear(void) { u16 j = 0; u16 k = 0; GPIO_WriteBit(GPIOC,LCD_CS1,Bit_RESET); GPIO_WriteBit(GPIOA,LCD_CS2,Bit_RESET); GPIO_WriteBit(GPIOA,LCD_CS3,Bit_RESET); LCD_WriteCmd(LCD_PAGE_ADDR + 0); LCD_WriteCmd(LCD_COL_ADDR + 0); for(k=0;k<8;k++) { LCD_WriteCmd(LCD_PAGE_ADDR+k); for(j=0;j<64;j++) { //LCD_WriteCmd(LCD_COL_ADDR + j); ÔÚдÊý¾Ýʱ,ÁÐÊý»á×Ô¶¯Ôö¼Ó¡£ LCD_WriteData(0x0f); } } GPIO_WriteBit(GPIOC,LCD_CS1,Bit_SET); GPIO_WriteBit(GPIOA,LCD_CS2,Bit_SET); GPIO_WriteBit(GPIOA,LCD_CS3,Bit_SET); } void LCD_Init(void) { GPIO_WriteBit(GPIOC,LCD_RST,Bit_RESET); delay_us(20); GPIO_WriteBit(GPIOC,LCD_RST,Bit_SET); delay_us(5); GPIO_WriteBit(GPIOC,LCD_CS1,Bit_RESET); GPIO_WriteBit(GPIOA,LCD_CS2,Bit_RESET); GPIO_WriteBit(GPIOA,LCD_CS3,Bit_RESET); LCD_WriteCmd(0x3f); //Turn on the lcd panel //LCD_WriteCmd(0x40); LCD_WriteCmd(0xc0); //Specifies RAM diaplay line for C0M0 LCD_Clear(); } void LCD_WriteChar(u8 pag,u8 col,u8 *chr) { u8 i = 0; u8 j = 0; u8 col_t = 0; LCD_WriteCmd(0xc0); col_t = col; for(i=0;i<2;i++) { for(j=0;j<16;j++) { switch(col_t&0xc0) { case 0: LCD_SelectChip1(); LCD_WriteCmd(LCD_PAGE_ADDR + pag + i); LCD_WriteCmd(LCD_COL_ADDR + col_t - 0 ); LCD_WriteData(chr[16*i + j]); col_t++; break; case 0x40: LCD_SelectChip2(); LCD_WriteCmd(LCD_PAGE_ADDR + pag + i); LCD_WriteCmd(LCD_COL_ADDR + col_t - 64); LCD_WriteData(chr[16*i + j]); col_t++; break; case 0x80: LCD_SelectChip3(); LCD_WriteCmd(LCD_PAGE_ADDR + pag + i); LCD_WriteCmd(LCD_COL_ADDR + col_t - 128); LCD_WriteData(chr[16*i + j]); col_t++; break; default: break; } } col_t=col_t-16; } } void delay_us(u16 ut) { u16 i = 0; for(;ut > 0;ut--) for(;i < ZHUPIN; i++ ); } void delay_ms(u16 mt) { u16 i = 0; for(;i < mt;i++) { delay_us(1000); } } |
|
相关推荐
1个回答
|
|
一起学习,共同努力。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32CUBEMX(13)--SPI,W25Q128外部Flash移植
1654 浏览 0 评论
OV7670摄像头使用串口发送数据到另一个板子上的lcd,出现花屏
1676 浏览 1 评论
1008 浏览 0 评论
741 浏览 0 评论
STM32CUBEMX(12)--IIC,12864OLED(0.96寸)移植
1032 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-12 00:39 , Processed in 0.690902 second(s), Total 71, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号