彩屏驱动

  • 1. 驱动彩屏
    • 1.1 初始化引脚
    • 1.2 初始化彩屏
  • 2. 彩屏涂色
  • 3. 结果展示
  • 4. 获取资源
SPI驱动彩屏
笔者最近画了个嘉立创的紫色版,上面布有彩屏模块,不得不说嘉立创紫真的很nice!
是不是很cool
言归正传,笔者曾经在学长#巨大的八爪鱼# 帮助下写过一篇FSMC驱动彩屏的文章,但是笔者并没有玩转彩屏,所以这次要出系列彩屏文章,形成一个完整的彩屏项目

STM32F103VET6驱动彩屏TFT2.8(ili9341)HAL库+标准库

可是!
之前买的那块微雪彩屏价格直逼one hundred yuans,
笔者果断放弃,不用FSMC驱动,找个便宜的裸屏


点击! 笔者购买的彩屏连接,便宜,还给你教程

言归正传 ,这次是真的!

1. 驱动彩屏

彩屏对应引脚
彩屏 引脚
TFT_CS PA4
TFT_RES PE13
D/R PE8
SPI1_MOSI PA7
SPI1_MISO PA6
SPI1_SCK PA5
TFT_LED +3.3V
SPI3_MOSI PB5:
SPI3_MISO PB4
:SPI3_SCK: PB3:
T_CS PA15
T_IRQ :PE10-:
注!TFT_LED引脚我直接接到一个按键上,用按键控制背光灯

1.1 初始化引脚

//打开需要用到的功能,配置输入输出模式RCC->APB2ENR =RCC_APB2ENR_IOPAEN | RCC_APB2ENR_USART1EN | RCC_APB2ENR_IOPEEN | RCC_APB2ENR_SPI1EN | RCC_APB2ENR_TIM1EN ;GPIOA->CRH = (GPIOA->CRH  & 0XFFFFF00F) | 0X4B0;GPIOE->CRH = (GPIOE->CRH & 0X00F00F0F) | 0X44037030;
//spi初始化配置
void SPI1_Init(void)
{/* SPI初始化 */GPIOA->CRL = (GPIOA->CRL & 0X0000FFFF) | 0Xb4bb0000;//spi引脚配置SPI1->CR1 = SPI_CR1_SSM | SPI_CR1_SSI | SPI_CR1_MSTR | SPI_CR1_SPE;
}
void LCD_GPIOInit(void)
{//推挽输出   RES/DR配置GPIOE->CRH = (GPIOE->CRH & 0XFF0FFFF0) | 0X300003;}
注!初始化引脚的内容就不罗嗦了
//低电平复位
void LCD_RESET(void)
{LCD_RST_CLR;delay_ms(100); LCD_RST_SET;delay_ms(100);
}

1.2 初始化彩屏

 void LCD_Init(void)
{  SPI1_Init(); //硬件SPI1初始化LCD_GPIOInit();//LCD GPIO初始化                                      LCD_RESET(); //LCD 复位// LCD_WR_REG(0X01); 软件res// Power control BLCD_WR_REG (0xcf);LCD_WR_DATA (0x00);LCD_WR_DATA (0x81);LCD_WR_DATA ( 0x30);// Power on sequence controlLCD_WR_REG (0xed);LCD_WR_DATA ( 0x64);LCD_WR_DATA ( 0x03);LCD_WR_DATA (0x12);LCD_WR_DATA ( 0x81);// Driver timing control ALCD_WR_REG (0xe8);LCD_WR_DATA (0x85);LCD_WR_DATA (0x10);LCD_WR_DATA (0x78);// Power control ALCD_WR_REG ( 0xcb);LCD_WR_DATA ( 0x39);LCD_WR_DATA (0x2c);LCD_WR_DATA (0x00);LCD_WR_DATA (0x34);LCD_WR_DATA ( 0x02);// Pump ratio controlLCD_WR_REG (0xf7);LCD_WR_DATA(0x20);// Driver timing control BLCD_WR_REG ( 0xea);LCD_WR_DATA ( 0x00);LCD_WR_DATA ( 0x00);// Frame Rate Control (In Normal Mode/Full Colors)LCD_WR_REG ( 0xb1);LCD_WR_DATA ( 0x00);LCD_WR_DATA ( 0x1b);// Display Function ControlLCD_WR_REG ( 0xb6);LCD_WR_DATA ( 0x0a);LCD_WR_DATA ( 0xa2);// Power Control 1LCD_WR_REG ( 0xc0);LCD_WR_DATA ( 0x35);// Power Control 2LCD_WR_REG ( 0xc1);LCD_WR_DATA ( 0x11);// VCOM Control 1LCD_WR_REG ( 0xc5);LCD_WR_DATA ( 0x45);LCD_WR_DATA ( 0x45);// VCOM Control 2LCD_WR_REG ( 0xc7);LCD_WR_DATA ( 0xa2);// Enable 3GLCD_WR_REG ( 0xf2);LCD_WR_DATA ( 0x00);// Gamma SetLCD_WR_REG ( 0x26);LCD_WR_DATA ( 0x01);// Positive Gamma CorrectionLCD_WR_REG ( 0xe0);LCD_WR_DATA ( 0x0f);LCD_WR_DATA ( 0x26);LCD_WR_DATA ( 0x24);LCD_WR_DATA ( 0x0b);LCD_WR_DATA ( 0x0e);LCD_WR_DATA ( 0x09);LCD_WR_DATA ( 0x54);LCD_WR_DATA ( 0xa8);LCD_WR_DATA ( 0x46);LCD_WR_DATA ( 0x0c);LCD_WR_DATA ( 0x17);LCD_WR_DATA ( 0x09);LCD_WR_DATA ( 0x0f);LCD_WR_DATA ( 0x07);LCD_WR_DATA ( 0x00);// Negative Gamma CorrectionLCD_WR_REG ( 0xe1);LCD_WR_DATA ( 0x00);LCD_WR_DATA ( 0x19);LCD_WR_DATA ( 0x1b);LCD_WR_DATA ( 0x04);LCD_WR_DATA ( 0x10);LCD_WR_DATA ( 0x07);LCD_WR_DATA ( 0x2a);LCD_WR_DATA ( 0x47);LCD_WR_DATA ( 0x39);LCD_WR_DATA ( 0x03);LCD_WR_DATA ( 0x06);LCD_WR_DATA ( 0x06);LCD_WR_DATA ( 0x30);LCD_WR_DATA ( 0x38);LCD_WR_DATA ( 0x0f);// Pixel Format SetLCD_WR_REG ( 0x3a);LCD_WR_DATA ( 0x55);// Sleep OutLCD_WR_REG ( 0x11);delay_ms(120);//  ILI9341_SetScanDirection(0); // 设置扫描方向LCD_WR_REG ( 0x29); // 允许显示显存中的图像 (后面还需要打开背光才能开显示)LCD_direction(USE_HORIZONTAL);//设置LCD显示方向LCD_Clear(WRITE);//清全屏白色
}

上面的初始化的命令和数据都是根据ILI9341手册上写的,如下图

Power control B 对应着手册上的Command cfh ,后面的数据就是对应下面的三个参数分别为 0X00 0X81 0X30

运行代码,现在应该是 白色了,但是我们无法确定是否真的驱动成功,所以下面我们就要对屏幕进行涂色

2. 彩屏涂色

//这段代码是卖家给出的清屏代码,函数详细我再下面代码中注释了
void LCD_Clear(u16 Color)
{unsigned int i,m;  /*这个函数是设置显示图框,显示的横纵坐标起点和终点*/LCD_SetWindows(0,0,lcddev.width-1,lcddev.height-1);   LCD_CS_CLR;//将spi的cs拉低LCD_RS_SET;//rs置一for(i=0;i<lcddev.height;i++)//for循环遍历像素点{for(m=0;m<lcddev.width;m++){   Lcd_WriteData_16Bit(Color);//将颜色数据写进去,显示在每个像素点}}LCD_CS_SET;//拉高 数据发送完毕
} 
涂色,发现彩屏并不是所有像素点都显示了红色,有三横的像素点显示不正常
回到初始化彩屏代码,其中的sleep out 命令#退出低功耗模式,下面有个120ms的延时, 笔者将延时去掉
结果如上图更多横的像素点没有被涂色
所以将延时改到150ms,像素点显示正常,笔者将其定义为,彩屏未完全睡醒
注:sleep out 初始化时必须要有的不然屏幕就是一直处于低功耗状态,一直为白屏,有兴趣的朋友可以尝试通过按键来切换彩屏的状态

3. 结果展示

测试展示图
嘿嘿!先来看看结果视频

4. 获取资源

【获取资源】

1.资源链接:点击获取
2.关注微信公众号后台回复:SPI驱动彩屏

【注意】

资源中有彩屏文字显示测试、图片显示测试、还有图形显示测试。

后续笔者将更新彩屏文字显示等应用的文章
【关注微信公众号一起来交流】

·

独木带你玩转彩屏——应用1驱动彩屏(寄存器spi版)相关推荐

  1. 独木带你玩转彩屏——应用2显示文字及图形

    彩屏驱动 3. 结果展示 4. 获取资源 SPI驱动彩屏 本章文章续上篇<独木带你玩转彩屏--应用1驱动彩屏(寄存器spi版)>如和使用彩屏显示文字图形 点击阅读上篇文章 (彩屏的引脚分配 ...

  2. 对讲机的那点事:带你玩转LD800数字车载台读、写频操作:一

    车载电台在车队行进过程中是最理想的联络指挥工具,它可以让车队步调一致地高效行驶,不会出现跟车掉队的情况.今天小编就带你玩转LD800数字车载台读写频操作: 基本参数: ◆256个信道,大屏幕彩屏显示 ...

  3. cad的文字嵌入线条_带你玩转CAD!

    CAD画图已经成为化工人的必备技能.什么,这么多CAD必备技巧你居然还不知道?我该拿什么拯救你,我最最最最最最亲爱的旁友!!!下面给大家整理了50个相见恨晚的CAD技巧,带你玩转CAD!!相见恨晚的5 ...

  4. each 数据获取attr_调用高德POI数据,带你玩转长沙

    长沙CITY,长沙SHOW 长沙C-BLOCK,长沙FLOW 长沙妹驼,叫长沙GIRL 说到长沙,大家第一想到的可能就是小吃,当然来长沙旅游,不光只是为了吃,这吃喝玩乐,咱都得来一套是吧.基于此,我调 ...

  5. 【对讲机的那点事】带你玩转灵通LT33公网集群对讲机

    网集群对讲机已经遍布各个行业,而且公网集群对讲机与常规对讲机相比,具有更加强大的通信对讲调度能力,且功能更多.保密性更好,符合用户对无线通信的要求.今天小编就手把手教你玩转灵通LT33公网集群对讲机: ...

  6. java cxf 入口统一_分分钟带你玩转 Web Services【2】CXF

    在实践中一直在使用 JAX-WS 构建 WebService 服务,服务还是非常稳定.高效的. 但还是比较好奇其他的 WebService 开源框架,比如:CXF/Axis2/Spring WS等. ...

  7. 独家直播双十一全网动态?前黑客“劳改”带你玩转大数据

    独家直播双十一全网动态?前黑客"劳改"带你玩转大数据 发表于2015-11-24 10:26| 4044次阅读| 来源CSDN| 7 条评论| 作者蒲婧 CTO俱乐部CTOCTO讲 ...

  8. AI之Robot:带你玩转机器人DIY机器人——让你成为机器人的真正主人

    AI之Robot:带你玩转机器人&DIY机器人--让你成为机器人的真正主人 目录 关于机器人 知识框架--Chatbot Conversation Framework 语境--语言语境& ...

  9. NLP之ASR:基于python和机器学习算法带你玩转的语音实时识别技术

    NLP之ASR:基于python和机器学习算法带你玩转的语音实时识别技术 导读 带你玩转python实现的语音实时识别技术(包括音频混音.回声消除.噪音滤除.杂音消除.静音检测等方法) 视频观看: 软 ...

最新文章

  1. 禁止拖放对象文本被选择
  2. DeepWide推荐系统
  3. 北大95后「AI萝莉」回来了,一次中8篇顶会论文的她,现在达摩院开源7大NLP模型...
  4. 阿里云发布大数据产品ODPS 6小时处理100PB数据
  5. 深入react技术栈(10):受控组件和非受控组件
  6. Java中list操作
  7. Android Studio实现一个校园二手交易系统
  8. 二、CGS2000坐标系
  9. mysql,SQL标准,多表查询中内连接,外连接,自然连接等详解之查询结果集的笛卡尔积的演化...
  10. 钉钉H5应用开发-jsapi调用
  11. 2021年房地产经纪行业发展研究报告
  12. python分词工具,你用哪个
  13. 计算机博弈 基础算法 阿尔法-贝塔剪枝算法 α-β剪枝算法
  14. mitmproxy的介绍以及配置过程中的问题
  15. 高速光耦6N137用于RS485通信的总结
  16. 人工智能算法(一)进化算法
  17. 戴尔服务器运行失败,dell戴尔服务器错误代码及解决方案2013版
  18. Factory method 'dataSource' threw exception; nested exception is java.lang.NullPointerException
  19. 免费制作在线网站教程
  20. windows如何创建计划任务并在窗口界面隐藏运行

热门文章

  1. habor-deploy docker https 私有仓库搭建
  2. hdwiki中lib文件目录功能
  3. 开关二极管IN4148
  4. 神舟笔记本WLAN打不开的解决方法
  5. 企业云成本管控,你真的做对了吗?
  6. NIUSHOP wap端底部导航设置
  7. 源码分析RocketMQ顺序消息消费实现原理
  8. C++字符串转为大写/小写
  9. ipad无线怎么重新连接到服务器,iPad不能连接无线怎么办 iPad不能连接无线解决方法【详解】...
  10. Python 新手入门引导。