STM32VCT6FSMC驱动3.5寸IPS全视角液晶屏

3.5寸tft:320*480点阵,是全视角ips类型,显示效果极佳,秒杀其它普通tn类型的屏!
现在用stm32vct6fsmc驱动3.5寸ips全视角液晶屏如下:
//说明:im0接地,im1接iovcc,im2接地,选择16位接口
//使用stm32fsmc16bit
驱动代码:
/*********************************  *************************************
* copyright (c) 2017 金鑫液晶显示屏
* all rights reserved.
*
* 文件名   :tftlcd_init.c   
* 描述     :屏驱动代码
*
* 當前版本 :v1.0
* 作    者 :cgy
* 完成日期 :2017-12-01
* 修改描述 :第一版本
*        微信号:wxjcgy20120815
*        e-mail : 68771083@qq.com
*        淘宝显示屏范例屏: https://shop150276963.taobao.com ... 679131.d0011.pdifpt                                                                                            
*******************************************************************************/
#include tftlcd_init.h
///////////////////////////
u8 lcd_id[12]; //存放lcd id字符串
/*************以下初始化与相关设置代码*******************/
/*************************************/
void lcd_init(void)
{
/*************对lcd初始化前进行复位*******************/
lcd_reset(); //对显示屏务必上电复位       
/*************对lcd复位*****************************/
/*************对lcd屏参数设置************************/       
lcd_set();  //设置显示屏参数         需要设置,显示功能都用到设置的.
/*************以下开始初始化*******************/
/*************以下开始初始化*******************/
ili9481_cmi350ips_initial_code(); //20180327 ok
/*************end******************/
/*************end******************/
}
/*************以下开始初始化*******************/       
/*************以下开始初始化*******************/       
////////////////////////////////////
#define lcd_ili9481_cmd  lcd_wr_8reg
#define lcd_ili9481_index lcd_wr_8data
#define delayms  delay_ms
#define comm_out  lcd_wr_8reg
#define data_out lcd_wr_8data
#define delayms  delay_ms
void ili9481_cmi350ips_initial_code(void)
{
//20180510 ok
//void ili9481_cmo3.5ips_initial_code(void)
lcd_ili9481_cmd(0x11);
delayms(20);
lcd_ili9481_cmd(0xd0);
lcd_ili9481_index(0x07);//vc[2:0] sets the ratio factor of vci to generate the reference voltages vci1.
lcd_ili9481_index(0x45);//bt[2:0] sets the step up factor and output voltage level from the reference voltages vci1   42
lcd_ili9481_index(0x1b); //vrh[3:0]: sets the factor to generate vreg1out from vcilvl.
lcd_ili9481_cmd(0xd1);//vcom control
lcd_ili9481_index(0x00);//00
lcd_ili9481_index(0x0f);//14   vcm [6:0]
lcd_ili9481_index(0x1c);//1b   vdv[4:0]
lcd_ili9481_cmd(0xd2);
lcd_ili9481_index(0x01);
lcd_ili9481_index(0x12);
lcd_ili9481_cmd(0xc0);
lcd_ili9481_index(0x00);//10//1//00  rev  sm  gs
lcd_ili9481_index(0x3b);
lcd_ili9481_index(0x00);
lcd_ili9481_index(0x02);
lcd_ili9481_index(0x01);
lcd_ili9481_cmd(0xc5);
lcd_ili9481_index(0x03);
lcd_ili9481_cmd(0xc8);
lcd_ili9481_index(0x00);
lcd_ili9481_index(0x46);
lcd_ili9481_index(0x44);
lcd_ili9481_index(0x50);
lcd_ili9481_index(0x04);
lcd_ili9481_index(0x16);
lcd_ili9481_index(0x33);
lcd_ili9481_index(0x13);
lcd_ili9481_index(0x77);
lcd_ili9481_index(0x05);
lcd_ili9481_index(0x0f);
lcd_ili9481_index(0x00);
lcd_ili9481_cmd(0x36);
lcd_ili9481_index(0x0a);//0a
lcd_ili9481_cmd(0x3a);
lcd_ili9481_index(0x55);//66
lcd_ili9481_cmd(0x2a);
lcd_ili9481_index(0x00);
lcd_ili9481_index(0x00);
lcd_ili9481_index(0x01);
lcd_ili9481_index(0x3f);
lcd_ili9481_cmd(0x2b);
lcd_ili9481_index(0x00);
lcd_ili9481_index(0x00);
lcd_ili9481_index(0x01);
lcd_ili9481_index(0xdf);
delayms(120);
lcd_ili9481_cmd(0x29);
}
/**********************************************
函数名:lcd块选函数
功能:选定lcd上指定的矩形区域    选择设置三种中一种就可以
注意:xstart、ystart、xend、yend随着屏幕的旋转而改变,位置是矩形框的四个角
入口参数:xstart x方向的起始点
          ysrart y方向的起始点
          xend   y方向的终止点
          yend   y方向的终止点
返回值:无
***********************************************/
void blockwrite(unsigned int xstart,unsigned int xend,unsigned int ystart,unsigned int yend)
{
lcdblockili9481( xstart,xend,ystart,yend);
}
/*******************************************************************************/
///////////////各种ic窗口////////////////
void lcdblockili9481(unsigned int xstart,unsigned int xend,unsigned int ystart,unsigned int yend)
{
//ili9481  20180328
//lcd_wr_8reg(0x36);
//lcd_wr_8data(0x0b);  //ec   2c
lcd_wr_8reg(lcddev.setxcmd);   
lcd_wr_8data(xstart>>8);
lcd_wr_8data(xstart&0xff);
lcd_wr_8data(xend>>8);
lcd_wr_8data(xend&0xff);
lcd_wr_8reg(lcddev.setycmd);   
lcd_wr_8data(ystart>>8);
lcd_wr_8data(ystart&0xff);
lcd_wr_8data(yend>>8);
lcd_wr_8data(yend&0xff);
lcd_wr_8reg(0x2c);
}
/*******************************************************************************
//从fsmc_8080.c移放置在tftlcd_init.c    20171120
//设置光标位置    选择设置二种中一种就可以
//xpos:横坐标
//ypos:纵坐标
*******************************************************************************/
void lcd_setcursor(u16 xpos, u16 ypos)
{
lcd_ili9481setcursor(xpos,ypos); //ili9481  ok  20180328
}
/*******************************************************************************/
///////////////光标////////////////
void lcd_ili9481setcursor(u16 xpos, u16 ypos)  //ili9481 20180511_ok
{
///20180511
//0-正装ok20180510
                                                ///正装设置ok 20180510  36h:0a
                                                lcddev.width=320;    //lcd 宽度
                                                lcddev.height=480;   //lcd 高度
                                                lcddev.setxcmd=0x2a;  //设置x坐标指令2a
                                                lcddev.setycmd=0x2b;  //设置y坐标指令2b
                                                lcddev.wramcmd=0x2c;  //开始写gram指令
                                                lcd_wr_8reg(0x36);   
                                                lcd_wr_8data(0x0a); //0a
                                                lcd_wr_8reg(lcddev.setxcmd);   
                                                lcd_wr_8data(xpos>>8);
                                                lcd_wr_8data(xpos&0xff);
                                                lcd_wr_8data(0x01);
                                                lcd_wr_8data(0x3f);       
                                                lcd_wr_8reg(lcddev.setycmd);   
                                                lcd_wr_8data(ypos>>8);
                                                lcd_wr_8data(ypos&0xff);
                                                lcd_wr_8data(0x01);
                                                lcd_wr_8data(0xdf);
lcd_wr_8reg(lcddev.wramcmd);
}
///===========end ==============//
例程效果展示:
显示的世界就是这么简单~
共勉:
没有横空出世的运气,只有脚踏实地的努力
可加微信:13410179961 一起聊显示世界~

ABB机器人将为Array Plastics生产线带来优势
让家人不被蚊子打扰,灭蚊灯哪个牌子好
如何利用AI追踪或研究大型的小动物群落
政府用区块链干了一些什么
云天励飞的人脸识别设备正式通过银行卡检测中心的增强级活体检测
STM32VCT6FSMC驱动3.5寸IPS全视角液晶屏
如何为功率器件找到合适的驱动芯片
未来能源的选择将何去何从?氢能极大概率将成为能源的终极之路
基于Modbus协议,捷杰传感成功在振动筛设备以web界面本地化监测部署
高保真BTL放大器(TDA2009)
默认usb设置怎么设置都表示什么
垂直GaN获得重大突破,旨在取代SiC
恩智浦半导体针对主流平板电视推出全新平台,实现未来观赏体验
为什么需要集成电路看了就知道
基于飞腾CPU的自主可控疏浚作业控制系统实船应用
三相交流异步电动机控制电路的识图与安装
苹果因电池门面临集体诉讼 iPhone 12S的刘海或将会更小
2019年智能机器人行业发展现状及未来发展趋势
2018年第一季度,京东方手机及电脑显示器出货量均位列全球第一
FANUC-R-1000iA热锻上下料机器人方案