【经验】国产MCU CS32F030驱动彩色LCD显示屏YB-TG240320C325B-N-A0的硬软件设计
芯海科技CS32F030是一款32bit cortex-M0内核的国产MCU,YB-TG240320C325B-N-A0是亿都设计的基于驱动芯片ST7789V2的320x240彩色LCD显示屏,本文介绍CS32驱动液晶屏相关的硬件连接和软件驱动。
1.硬件连接:
连接采用SPI通信,除了基础的SPI接口,需要额外注意:
RESET引脚要连接,在初始化之前需要reset清除相关显示。
RS引脚非常重要,在配置和初始化时,需要采用命令的方式,在进行图案和字母传输的时候,需要采用数据的方式。
注意LCS_A的背光电压和电流,建议使用3.3V。
2.软件驱动
#define FONT_W 32
#define FONT_H 32
#define PIC_WIDTH 160 //预备向LCD显示区域填充的图片的大小
#define PIC_HEIGHT 160
#define RED 0xF800 //定义颜色常量
#define GREEN 0x07E0
#define BLUE 0x001F
#define WHITE 0xFFFF
#define BLACK 0x0000
#define GRAY 0xEF5D //0x2410
#define GRAY75 0x39E7
#define GRAY50 0x7BEF
#define GRAY25 0xADB5
// LCD SPI2 GPIO config
gpio_mode_set(GPIOB, GPIO_PIN_10, GPIO_MODE_OUT_PP(GPIO_SPEED_HIGH));//CS
gpio_mode_set(GPIOB, GPIO_PIN_13, GPIO_MODE_OUT_PP(GPIO_SPEED_HIGH));//sclk
gpio_mode_set(GPIOB, GPIO_PIN_14, GPIO_MODE_OUT_PP(GPIO_SPEED_HIGH));//SPI_A0 WR/D
gpio_mode_set(GPIOB, GPIO_PIN_15, GPIO_MODE_OUT_PP(GPIO_SPEED_HIGH));//mosi
gpio_mode_set(GPIOA, GPIO_PIN_12, GPIO_MODE_OUT_PP(GPIO_SPEED_HIGH));//RESET
#define LCD_RST(n) (n ? __GPIO_PIN_SET(GPIOA, GPIO_PIN_12) : __GPIO_PIN_RESET(GPIOA, GPIO_PIN_12))
#define LCD_WR(n) (n ? __GPIO_PIN_SET(GPIOB, GPIO_PIN_14) : __GPIO_PIN_RESET(GPIOB, GPIO_PIN_14))
#define LCD_CS(n) (n ? __GPIO_PIN_SET(GPIOB, GPIO_PIN_10) : __GPIO_PIN_RESET(GPIOB, GPIO_PIN_10))
#define LCD_SDA(n) (n ? __GPIO_PIN_SET(GPIOB, GPIO_PIN_15) : __GPIO_PIN_RESET(GPIOB, GPIO_PIN_15))
#define LCD_SCK(n) (n ? __GPIO_PIN_SET(GPIOB, GPIO_PIN_13) : __GPIO_PIN_RESET(GPIOB, GPIO_PIN_13))
驱动初始化:
void SendDataSPI(unsigned char dat)
{
//__SPI_8BITS_DATA_SEND(SPI2, dat);
#if 1
unsigned char i;
for(i = 0; i < 8; i++)
{
LCD_SCK(0);
if(dat & 0x80)
{
LCD_SDA(1);
// delay_us(1);
}
else
{
LCD_SDA(0);
// delay_us(1);
}
LCD_SCK(1);
// delay_us(1);
dat <<= 1;
}
#endif
}
void WriteComm(unsigned int i)
{
LCD_CS(0);
LCD_WR(0);
SendDataSPI(i);
LCD_CS(1);
}
void WriteData(unsigned int i)
{
LCD_CS(0);
LCD_WR(1);
SendDataSPI(i);
LCD_CS(0);
}
void WriteDispData(unsigned char DataH,unsigned char DataL)
{
//CS0=0;
SendDataSPI(DataH);
SendDataSPI(DataL);
//CS0=1;
}
void LCD_Init(void)
{
LCD_RST(1);
delay_ms(200);
LCD_RST(0);
delay_ms(300);
LCD_RST(1);
delay_ms(200);
WriteComm(0x11);
delay_ms(480);
//boe2.8ips+st7789v2
WriteComm(0x36);
WriteData(0x00);
WriteComm(0x3A);
WriteData(0x55); //
WriteComm(0xB2);
WriteData(0x0C);
WriteData(0x0C);
WriteData(0x00);
WriteData(0x33);
WriteData(0x33);
WriteComm(0xB7);
WriteData(0x75); //VGH=14.97V, VGL=-10.43V
WriteComm(0xBB); //VCOM
WriteData(0x2B);
WriteComm(0xC0);
WriteData(0x2C);
WriteComm(0xC2);
WriteData(0x01);
WriteComm(0xC3); //GVDD
WriteData(0x0B);
WriteComm(0xC4);
WriteData(0x20);
WriteComm(0xC6);
WriteData(0x0F);
WriteComm(0xD0);
WriteData(0xA4);
WriteData(0xA1);
WriteComm(0xE0);
WriteData(0xD0);
WriteData(0x01);
WriteData(0x04);
WriteData(0x09);
WriteData(0x0B);
WriteData(0x07);
WriteData(0x2E);
WriteData(0x44);
WriteData(0x43);
WriteData(0x0B);
WriteData(0x16);
WriteData(0x15);
WriteData(0x17);
WriteData(0x1D);
WriteComm(0xE1);
WriteData(0xD0);
WriteData(0x01);
WriteData(0x05);
WriteData(0x0A);
WriteData(0x0B);
WriteData(0x08);
WriteData(0x2F);
WriteData(0x44);
WriteData(0x41);
WriteData(0x0A);
WriteData(0x15);
WriteData(0x14);
WriteData(0x19);
WriteData(0x1D);
WriteComm(0x29);
}
void ExitSLP(void)
{
//FOR OTM3225A
//Power On sequence
WriteComm(0x0010);WriteData(0x0080); // SAP, BT[3:0], AP, DSTB, SLP
WriteComm(0x0011);WriteData(0x0000); // DC1[2:0], DC0[2:0], VC[2:0]
WriteComm(0x0012);WriteData(0x0000); // VREG1OUT voltage
WriteComm(0x0013);WriteData(0x0000); // VDV[4:0] for VCOM amplitude
delay_ms(200); // Dis-charge capacitor power voltage
WriteComm(0x0010);WriteData(0x1490); // SAP, BT[3:0], AP, DSTB, SLP, STB
WriteComm(0x0011);WriteData(0x0227); // R11h=0x0221 at VCI=3.3V DC1[2:0], DC0[2:0], VC[2:0]
delay_ms(50); // Delay 50ms
WriteComm(0x0012);WriteData(0x009B); // External reference voltage =Vci;
delay_ms(50); // Delay 50ms
WriteComm(0x0013);WriteData(0x1800); // R13h=0x1200 when R12=009D VDV[4:0] for VCOM amplitude
WriteComm(0x0029);WriteData(0x0027); // R29h=0x000C when R12=009D VCM[5:0] for VCOMH
delay_ms(50); // Delay 50ms
WriteComm(0x0007);WriteData(0x0133); // 262K color and display ON
}
void DispColor(unsigned int color)
{
unsigned int i,j;
BlockWrite(0,COL-1,0,ROW-1);
LCD_CS(0);
LCD_WR(1);
for(i=0;i<ROW;i++)
{
for(j=0;j<COL;j++)
{ SendDataSPI(color>>8);
SendDataSPI(color);}
}
LCD_CS(1);
}
在初始化完成之后,主函数调用驱动:
LCD_Init();
ExitSLP();
DispColor(WHITE);
然后就可以进行数据显示了。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由蜡笔小芯提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关研发服务和供应服务
相关推荐
【经验】在keil中添加芯海MCU CS32A010K8V7的支持包
本文将介绍在keil中添加芯海MCU CS32A010K8V7的支持包,芯海科技推出的CS32A010K8V7是一款32Pin脚的ARM 32位构架Cortex-M0核的MCU,内置64K Flash,1路SPI、2路USART支持FIFO等丰富的资源。
设计经验 发布时间 : 2023-05-18
【经验】芯海MCU CS32F030C8T6的串口打印乱码问题
芯海CS32F030C8T6的串口问题有客户在使用芯海的CS32F030C8T6 MCU的时候遇到如下问题:1、使用9600波特率无奇偶校验,刚上电的时候串口会发一些乱码出来。乱码打印等问题,本文提供解决方案。
设计经验 发布时间 : 2022-12-08
【经验】解析华芯微特MCU SWM32S基于触摸芯片GT9157的驱动实现过程
本文华芯微特将为大家介绍SWM32S基于5寸800*480分辨率液晶屏+GT9157触摸芯片的驱动实现过程。
设计经验 发布时间 : 2023-04-12
Top Chinese 8/32-bit MCU Manufacturers with ARM Cortex-M0, M0+, M3, M4 and Stable Supply
In the face of rising semiconductor raw material prices and a continued shortage of production capacity, Sekorm has joined Civil Technology, Arteli, Chipsea, China Microelectronics, Fudan Microelectronics, Aerospace Shun, and other mainstream MCU manufacturers to provide stable MCU supply guarantees
活动 发布时间 : 2022-06-21
芯海科技(CHIPSEA)电子烟MCU产品介绍
描述- 芯海电子烟产品介绍
型号- CS32 T0,CS3XG,CSS12P82,CS32F031C8,CSU38M20,CSU32P20-MSOP10,CSU32P20,N76XX03,CSMXXX12X2,CS32 T4,CSU8RP3117B,CST92F30,CS32A060,M031C8T6,CS32F072,M031C6T6,CS32F030,CS32F031,CSU32M10,CS32F070,CSU32M11,CS32F071,S031C6,CSU3XF,CSU38M20-QFN24,CSU18M53,CSU38F20,CSU32P10-MSOP10,H03XC8,CXXX9F12X2,CSU8RP3215,CSU8RP3216,CS32 A0,CSU32M10-MSOP10,CSU3XP,CSU1XM,M031C88,CSU3XM,CS32 F0,S031C6T6,TM5XXX28,CS32F031K8U6,CSU38F20-QFN20,CS32F031G6U6,CSU9XT,CS32F031K6U6,CSU8RP3115B,H031C6T6,H031C8T6,CS32G023,TMXXXA28,CSU8RP3119B,CS32G020,CS32G021,CSS34P16,CSU32P10,S030C8,CS32 G0,CSP32F2X,CSU32M12-DFN14,CSU8RP311B,CS32 G4,NXXX003,CSU32M10-QFN16
芯海科技CS32F061:集成12位DAC高性价比信号链MCU,具有丰富的模拟特性,满足高精度需要
芯海科技32位通用MCU系列全新推出集成12位DAC的高性价比信号链MCU芯片CS32F061。这款MCU具备丰富的模拟特性,内置可编程逻辑单元,可简化硬件设计,是高精度数据处理及灵活信号链设计的嵌入式系统的理想选择,在电动工具、电源管理、工业控制及通信等领域拥有广泛应用前景。
产品 发布时间 : 2024-08-13
【应用】芯海8位MCU CSU32M10-SOP16助力电子烟设计,具有5μs响应快速可靠、集成度高优势
电子烟主控选择方面客户比较在意能否提供完善的一套方案,这样也可以节省开发时间,实现量产,推荐芯海8位MCU CSU32M10-SOP16方案,集成度高、能够有效节省PCB空间,还有硬件短路保护、恒功率控制、不断电烧录等特点。
应用方案 发布时间 : 2023-03-22
芯海通用 MCU 应用笔记 CS32F03x-RA 系列兼容性和移植指南
型号- CS32F030F6P6,CS32F030F8P7-RA,CS32F031K8U7-RA,CS32F03X 系列,CS32F0,CS32F036K6T7,CS32F031XXX7-RA,CS32F031K8S6-RA,CS32F030XXX7-RA,CS32F031G8U6-RA,CS32F030-RA,CS32F035K6U6,CS32F03X-RA,CS32F030F6P6-RA,CS32F030-RA 系列,CS32F0 系列,CS32F030C8T7-RA,CS32F036 系列,CS32F031K8V6-RA,CS32F03X-RA 系列,CS32F031G6U6,CS32F030 系列,CS32F036,CS32F03XXXX7-RA,CS32F03X,CS32F031K8U6-RA,CS32F030XXX6-RA,CS32F030C8T6,CS32F035,CS32F030,CS32F036K6U7,CS32F031,CS32F030K6T6,CS32F031-RA,CS32F031XXX6-RA,CS32F031G8U7-RA,CS32F031-RA 系列,CS32F0356,CS32F036F6P7,CS32F031K8U6H,CS32F031C8T6,CS32F035 系列,CS32F030C8T6-RA,CS32F031 系列,CS32F03XXXX6-RA
【产品】芯海车规MCU,48MHz,内置1MADC,1*PWM电机控制及车身域应用案列介绍 |视频
芯海科技通用车规MCU及车身域应用案例
产品 发布时间 : 2023-03-20
芯海通用MCU选型表
M0内核MCU,CS32F03X系列,M0内核,最高主频48MHZ,Flash最大64K,RAM 8K,工作温度-40℃~105℃;M3内核MCU,CS32F103系列,M3内核,最高主频72MHz,Flash 128K,RAM 128K,工作温度-40℃~105℃。
产品型号
|
品类
|
Core
|
Freq.(MHz)
|
Flash(Bytes)
|
SRAM(Bytes)
|
IO
|
Adv. Timer
|
16bitGP Timer
|
32bitGP Timer
|
SysTick
|
FWDT/WWDT
|
RTC
|
UART
|
SPI
|
I2S
|
I2C
|
USB
|
CAN
|
12bit ADCUnits(ch)
|
Temp.Sensor
|
VBAT
|
Operating Temp.(℃)
|
Supply Voltage (V)
|
Package
|
Pack Type
|
Package Qty.
|
MSL
|
CS32F030F6P6-RA
|
通用MCU
|
M0
|
48
|
32K
|
4K
|
15
|
1
|
5
|
-
|
1
|
1/1
|
-
|
4
|
1
|
-
|
1
|
-
|
-
|
1(9)
|
Temp.Sensor
|
-
|
-40~85
|
2.0~5.5
|
TSSOP20
|
Tube
|
6000
|
3
|
选型表 - 芯海 立即选型
芯海科技亮相AutoSEMI 2024:“模拟信号链+MCU”赋能汽车电子创新
2024年5月23日,业界瞩目的“The 2nd AutoSEMI 2024智能汽车数字芯片大会”在上海盛大举行。芯海科技汽车电子产品线总经理董鹏受邀作为特邀嘉宾,发表了《模拟信号线+MCU 赋能汽车电子创新》的主题演讲,详细阐述了公司车规级系列产品进展及未来规划。
厂牌及品类 发布时间 : 2024-05-26
【应用】芯海MCU CS32L010F8U6用于电子烟,封装为QFN20(3mm*3mm),运行频率24MHz
芯海的MCU CS32L010F8U6在电子烟中的应用,它是一款内嵌 32 位 ARM® Cortex®-M0 内核的超低功耗微控制器,最高可运行在24MHz,内置 64K 字节的嵌入式 Flash,4K 字节的 SRAM,具有高整合度、高抗干扰、高可靠性及高性价比等优势。
应用方案 发布时间 : 2023-03-29
【应用】功耗低至5.6μA的32位MCU CS32F030C8T6用于激光测距仪,宽压供电电压2~5.5V
激光测距仪主要由MCU控制器、激光发射部分、激光接收部分、屏幕显示部分、按键驱动部分以及电源模块等组成。MCU的部分本文推荐使用芯海科技的32位MCU CS32F030C8T6,功耗可低至5.6μA,可以很好地满足电池供电系统对MCU的要求。
应用方案 发布时间 : 2021-12-25
芯海科技MCU CSU32P10助力邦克仕磁吸散热无线充实现多种控制功能
芯海科技紧随市场需求,推出这款高性能低功耗的MCU CSU32P10,在邦克仕磁吸散热无线充中主要用于响应按键操作,实现功能转换、功率控制以及RGB灯光控制等多项功能。这款MCU可以广泛应用于无线充、散热背夹、移动电源、小家电、玩具等多种设备中,高效助力厂商实现多种控制功能。
应用方案 发布时间 : 2024-04-12
【技术大神】如何选择一款合适的MCU驱动段码液晶屏
本文作者基于自己的实际经验,分享一种驱动段码屏的简易方法,可大幅降低成本。
器件选型 发布时间 : 2016-06-27
电子商城
现货市场
服务
可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。
最小起订量: 1000 提交需求>
可烧录IC封装SOP/MSOP/SSOP/TSOP/TSSOP/PLCC/QFP/QFN/MLP/MLF/BGA/CSP/SOT/DFN;IC包装Tray/Tube/Tape;IC厂商不限,交期1-3天。支持IC测试(FT/SLT),管装、托盘装、卷带装包装转换,IC打印标记加工。
最小起订量: 1pcs 提交需求>
登录 | 立即注册
提交评论