各位别见笑
我是个没有什么基础的菜鸟
对于正点原子哥的寄存器的代码看的是又亲切 又迷糊。
无奈只能从固件库开始弄……
废话多了点 进入正题吧
首先就是拿LCD开刀, 根据本菜鸟看各种教程 根据自己天才般的理解能力
始终是没办法让LCD现实
想实现的目的很简单,就是初始化LCD 然后全屏写成各种颜色
全部代码都由自己参照各类教程 一点一点的写了出来
先定义各IO口
#define lcdsetled GPIO_SetBits(GPIOC, GPIO_Pin_10); //定义LCD背光
#define lcdclsled GPIO_ResetBits(GPIOC, GPIO_Pin_10);
#define lcdsetcs GPIO_SetBits(GPIOC, GPIO_Pin_9); //定义片选
#define lcdclscs GPIO_ResetBits(GPIOC, GPIO_Pin_9);
#define lcdsetrs GPIO_SetBits(GPIOC, GPIO_Pin_8); //定义标志
#define lcdclsrs GPIO_ResetBits(GPIOC, GPIO_Pin_8);
#define lcdsetwr GPIO_SetBits(GPIOC, GPIO_Pin_7); //定义写入标志
#define lcdclswr GPIO_SetBits(GPIOC, GPIO_Pin_7);
#define lcdsetrd GPIO_SetBits(GPIOC, GPIO_Pin_6); //定义读取标志
#define lcdclsrd GPIO_SetBits(GPIOC, GPIO_Pin_6);
#define lcdwrite(lcddata){GPIO_Write(GPIOB,lcddata);} // 写入数据
#define lcdread() (GPIO_ReadInputData(GPIOB)); // 读入数据
然后初始化LCD
GPIO_InitTypeDef GPIO_InitStructure; // 设置初始化组
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//开启GPIOC的时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10; //配置IO 组
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC,&GPIO_InitStructure);//初始化IO组
==================================
以上是读标志 写标志 还有片选,命令与数据 还有LED背光 的端口
然后就是 D0~D15 的初始化
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//开启GPIOB的时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All; //配置IO 组
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStructure);//初始化IO组
=================================
下面就是开启了背光 简单的设置了一下LCD
lcdsetled;
lcdwritereg(0x0000,0X0001);
然后迫不及待的就开始了 主函数上的
lcdclear(Black);
想把背景设置成黑色
void lcdclear(u16 Color)
{
u32 index=0;
lcdwritereg(R32,0);
lcdwritereg(R33,0);
lcdwreg(R34);
lcdclscs
for(index=0;index<76800;index++)
{
lcdclswr
lcdwrite(Color);
lcdsetwr
}
lcdsetcs
}
==============================
编译出来0错误。
结果背光是亮了,但是一直都没有见背景变黑的效果。
以上就是没基础 没文化的菜鸟摸爬滚打的艰辛路程
历时一个通宵,完全未果,唯一欣慰的是LCD的背光亮了……
还请各位看官指点一二
|