历史上的今天
今天是:2024年11月28日(星期四)
2020年11月28日 | 基于stm32的 ucGUI 12864下的移植
2020-11-28 来源:eefocus
#ifndef __LCD12864_H
#define __LCD12864_H
#include "LCDConf.h"
#include #include "stm32f10x.h" #include "stm32f10x_rcc.h" #include "stm32f10x_gpio.h" #include "stm32GpioBit.h" #define LCD_DELAY 10000 #define LCD_RCC RCC_APB2Periph_GPIOD #define LCD_PORT GPIOD #define LCD_DATA_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 //RST #define LCD_RST_PIN GPIO_Pin_12 #define LCD_RST_PORT GPIOC #define LCD_RST_RCC RCC_APB2Periph_GPIOC //PSB #define LCD_PSB_PIN GPIO_Pin_9 #define LCD_PSB_PORT GPIOA #define LCD_PSB_RCC RCC_APB2Periph_GPIOA //EN #define LCD_EN_PIN GPIO_Pin_10 #define LCD_EN_PORT GPIOA #define LCD_EN_RCC RCC_APB2Periph_GPIOA //RW #define LCD_RW_PIN GPIO_Pin_11 #define LCD_RW_PORT GPIOC #define LCD_RW_RCC RCC_APB2Periph_GPIOC //RS #define LCD_RS_PIN GPIO_Pin_10 #define LCD_RS_PORT GPIOC #define LCD_RS_RCC RCC_APB2Periph_GPIOC /*DB7 busy信号位控制 //PD7 CRH的最高4bit为控制位,=0x33... out =0x44...in */ #define LCM_BUSY_PIN_IN() LCD_PORT->CRL = (LCD_PORT->CRL & 0x0fffffff)|0x40000000 #define LCM_BUSY_PIN_OUT() LCD_PORT->CRL = (LCD_PORT->CRL & 0x0fffffff)|0x30000000 #define SetLcdRS LCD_RS_PORT->BSRR = LCD_RS_PIN #define ResetLcdRS LCD_RS_PORT->BRR = LCD_RS_PIN #define SetLcdRW LCD_RW_PORT->BSRR = LCD_RW_PIN #define ResetLcdRW LCD_RW_PORT->BRR = LCD_RW_PIN #define SetLcdEN LCD_EN_PORT->BSRR = LCD_EN_PIN #define ResetLcdEN LCD_EN_PORT->BRR = LCD_EN_PIN #define SetLcdRST LCD_RST_PORT->BSRR = LCD_RST_PIN #define ResetLcdRST LCD_RST_PORT->BRR = LCD_RST_PIN #define SetLcdPSB LCD_PSB_PORT->BSRR = LCD_PSB_PIN #define ResetLcdPSB LCD_PSB_PORT->BRR = LCD_PSB_PIN #define LCM_WAIT_FOR_BUSY() do{ LCM_BUSY_PIN_IN(); ResetLcdRS; SetLcdRW; while(LCD_PORT->IDR & 0x0080) __nop(); LCM_BUSY_PIN_OUT(); }while(0) void _SetPixel(uint32_t x, uint32_t y, uint8_t color); void GUI_Line(uint32_t x0, uint32_t y0, uint32_t x1, uint32_t y1, uint8_t color); uint32_t LCD_GetPoint(uint32_t x, uint32_t y); void LCM_Init( void ); #endif /****************************************************************************** 模块名称:st7920 串行方式驱动12864液晶驱动 串行硬件(IO模拟SPI)连接方式: 1 GND GND 2 VCC 3V3 3 VO NC 4 RS CS PD7 5 RW SDI PD6 6 E SCK PD5 7 D0 NC 8 D1 NC 9 D2 NC 10 D3 NC 11 D4 NC 12 D5 NC 13 D6 NC 14 D7 NC 15 PSB L 16 NC NC 17 RST NC 如果IO足够应该用软件复位 18 VOUT NC 19 LEDA 3V3 20 LEDK GND worldsing.cnblogs.com ******************************************************************************/ #include "lcd12864.h" #include "LCD_Private.h" /* private modul definitions & config */ #include "GUI_Private.h" #include //STM32硬件移植修改 #include "stm32f10x.h" #include "stm32f10x_rcc.h" #include "stm32f10x_gpio.h" #include "stm32GpioBit.h" #include //EN - SCK #define SCK_PORT D #define SCK_BIT 5 //RW - SID #define SID_PORT D #define SID_BIT 6 //RS - CS #define CS_PORT D #define CS_BIT 7 #define NOP() __nop() #define GetSID() GET_GPIO_BIT(SID_PORT, SID_BIT) //<- SID (RW) #define CS(value) OUT_GPIO_BIT(CS_PORT, CS_BIT, value) //-> CS (RS) #define SID(value) OUT_GPIO_BIT(SID_PORT, SID_BIT, value) //-> SID (RW) #define SCK(value) OUT_GPIO_BIT(SCK_PORT, SCK_BIT, value) //-> SCK (E ) /* 定义LCM操作的命令字 */ #define LCM_BE_DISABLE 0X30 /*基本指令模式*/ #define LCM_BE_ENABLE 0x34 /* 扩充指令集模式*/ #define LCM_BEG_ENABLE 0x36 /*扩充指令集模式且绘图显示*/ #define LCM_STARTROW 0x02 /* 显示起始行0,可以用LCM_STARTROW+x设置起始行。(x<64) */ #define LCM_ADDRSTRX 0x80 /* 页起始地址,可以用LCM_ADDRSTRX+x设置当前页(即X)。(x<15) */ #define LCM_ADDRSTRY 0x80 /* 列起始地址,可以用LCM_ADDRSTRY+y设置当前列(即Y)。(x<64) */
史海拾趣
|
PC式硬盘录像机死机全接触 在使用PC式的硬盘录像机的过程中,难免会遇到许多诸如死机等突发故障,对于平时工作正常的较新机子而言,其中大多数死机都是软件停止了响应造成的,只要强制关闭了这些停止响应的软件,电脑即可恢复正常工作,方法是先按 ...… 查看全部问答> |
|
求助,在5502中SDRAM的写入过程要用210ns,如何提升速度 在TMS320VC5502中,对SDRAM写操作,居然要210ns,简直无法干活,请教前辈,怎样解决这个问题?我对EMIF的相关寄存器进行设置,如WRITE SETUP 、WRITE STROBE 、WRITE HOLD ,对写操作消耗时间一点都没变化,很郁闷呀,在论坛上有说这是5502本身问题 ...… 查看全部问答> |
|
磁珠 磁珠专用于抑制信号线、电源线上的高频噪声和尖峰干扰,还具有吸收静电脉冲的能力。磁珠是用来吸 收超高频信号,像一些RF电路,PLL,振荡电路,含超高频存储器电路(DDR SDRAM,RAMBUS等)都需要在电源输入部分加磁珠,而电感是一种蓄能元 ...… 查看全部问答> |
|
几年前,智能化的生活在大多数人看来是一种遥不可及的梦幻,近年来随着相关产业和技术的成熟,经过大量厂家和房地产开发商的宣传推广,越来越多的住宅小区开始配套相对完善的智能家居系统,人们智能化生活的梦想慢慢变成了现实。在南京,已经有数十 ...… 查看全部问答> |
|
在定制WinCE操作系统的时候,我想添加对C#的支持。可是选项中有 .NET Compact Framework 2.0 跟 .NET Compact Framework 2.0-headless两个选择项目。 请问各位大侠,两个有什么不同呢? 还有就是我刚开始添加的是前者,编 ...… 查看全部问答> |
|
#include void main(void) { WDTCTL=WDT_ADLY_1000;//设置看门狗定时时间1000ms IE1|=WDTIE; //WDT使能 P5DIR|=0x02; //P5.1输出 P5OUT=0X02; _EINT();//中断 ...… 查看全部问答> |






