完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
#include "STM32f10x.h"
#define RS_ON GPIO_SetBits(GPIOB,GPIO_Pin_1); #define RS_OFF GPIO_ResetBits(GPIOB,GPIO_Pin_1); #define RW_ON GPIO_SetBits(GPIOB,GPIO_Pin_5); #define RW_OFF GPIO_ResetBits(GPIOB,GPIO_Pin_5); #define E_ON GPIO_SetBits(GPIOB,GPIO_Pin_6); #define E_OFF GPIO_ResetBits(GPIOB,GPIO_Pin_6); //#define LcdData(x) GPIOB->ODR=(GPIOB->ODR&0xff00)|(x&0x00FF); void LcdData(unsigned char Data) { GPIO_Write(GPIOB,Data<<7); } void delay(unsigned int ms) { unsigned int x,y; for(x=0;x } void LcdWcom(unsigned char WCom) { delay(100); RS_OFF; RW_OFF; LcdData(WCom);
delay(100); E_OFF; } void LcdWdata(unsigned char WData) { delay(100); RS_ON; RW_OFF; LcdData(WData); E_ON; delay(100); E_OFF; } void DisplayInit(void) { delay(100); LcdWcom(0x30); LcdWcom(0x0c); LcdWcom(0x01); } void SetCursor(unsigned char x,unsigned char y) { unsigned char i; switch(x) { case 0x00: i=0x80; break; case 0x01: i=0x90; break; case 0x02: i=0x88; break; case 0x03: i=0x98; break; default: break; } i=y+i; LcdWcom(i); } int main(void) { GPIO_InitTypeDef myStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); myStructure.GPIO_Pin=GPIO_Pin_All; myStructure.GPIO_Mode=GPIO_Mode_Out_OD; myStructure.GPIO_Speed=GPIO_Speed_50MHz; //myStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4; GPIO_Init(GPIOB,&myStructure); delay(100); DisplayInit(); delay(5); SetCursor(0,0); delay(5); LcdWdata(0x31); } |
|
相关推荐
1个回答
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2810 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2420 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2288 浏览 0 评论
2404 浏览 1 评论
1643 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 17:01 , Processed in 0.438129 second(s), Total 43, Slave 36 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2673