st7789s显示芯片驱动代码

st7789s显⽰芯⽚驱动代码
gpiofd_write(resetIO, 1);
usleep(50000);
gpiofd_write(resetIO, 0);
usleep(100000);
gpiofd_write(resetIO, 1);
usleep(100000);
st7789s芯⽚是分⼤⼩端的,当使⽤RGB16位⽅式发送数据时要注意发送数据的⼤⼩端问题
send_ctrl_cmd(0x11);
usleep(120000);
做文明有礼的北京人send_ctrl_cmd(0x36);
send_data_cmd(0x00);//更改显⽰⽅式
send_ctrl_cmd(0x3a);
send_data_cmd(0x06);//更改rgb颜⾊为多少位
send_ctrl_cmd(0xb0);
send_data_cmd(0xa0);//06
小松930e>武林大会八卦掌send_ctrl_cmd(0xb2);
send_data_cmd(0x28);
send_data_cmd(0x28);
send_data_cmd(0x05);
send_data_cmd(0x33);
send_data_cmd(0x33);
send_ctrl_cmd(0xb7);
send_data_cmd(0x35);
send_ctrl_cmd(0xbb);
send_data_cmd(0x3c);//23
send_ctrl_cmd(0xb1);
send_data_cmd(0x80);
send_data_cmd(0x10);
send_ctrl_cmd(0xc0);
send_data_cmd(0x2c);
send_ctrl_cmd(0xc2);
send_data_cmd(0x01);
send_ctrl_cmd(0xc3);
send_data_cmd(0x05);//14
send_ctrl_cmd(0xc4);
send_data_cmd(0x20);
send_ctrl_cmd(0xc6);
send_data_cmd(0x14); // 14
send_ctrl_cmd(0xd0);
send_data_cmd(0xa4);
send_data_cmd(0xa1);
send_ctrl_cmd(0xe0);
send_data_cmd(0xd0);
send_data_cmd(0x00);
send_data_cmd(0x02);
send_data_cmd(0x07);
send_data_cmd(0x07);
send_data_cmd(0x19);
send_data_cmd(0x2e);
send_data_cmd(0x54);
send_data_cmd(0x41);
send_data_cmd(0x2d);
send_data_cmd(0x17);
send_data_cmd(0x18);
周渝斐
send_data_cmd(0x14);
send_data_cmd(0x18);
send_ctrl_cmd(0xe1);
send_data_cmd(0xd0);
send_data_cmd(0x00);
send_data_cmd(0x02);
send_data_cmd(0x07);
send_data_cmd(0x04);
send_data_cmd(0x24);
send_data_cmd(0x2c);
send_data_cmd(0x44);
send_data_cmd(0x42);
send_data_cmd(0x1c);
send_data_cmd(0x1a);
send_data_cmd(0x17);
send_data_cmd(0x15);
send_data_cmd(0x18);
send_ctrl_cmd(0x35);
send_data_cmd(0x00);//40
send_ctrl_cmd(0x44);
send_data_cmd(0x19);
send_ctrl_cmd(0x29);
********************************清屏代码,把屏幕全部刷成⼀个⾊判断驱动是否有问题**********************
static void sw_clear_panel(unsigned int color)
{
unsigned short x0, y0, x1, y1, x, y;
unsigned short h_X_start,l_X_start,h_X_end,l_X_end,h_Y_start,l_Y_start,h_Y_end,l_Y_end;
x0 = (unsigned short)0;
y0 = (unsigned short)0;
x1 = (unsigned short)FRAME_WIDTH-1;
y1 = (unsigned short)FRAME_HEIGHT-1;
h_X_start=((x0&0xFF00)>>8);
l_X_start=(x0&0x00FF);
h_X_end=((x1&0xFF00)>>8);
l_X_end=(x1&0x00FF);
h_Y_start=((y0&0xFF00)>>8);
l_Y_start=(y0&0x00FF);
h_Y_end=((y1&0xFF00)>>8);
l_Y_end=(y1&0x00FF);
send_ctrl_cmd(0x2A);
send_data_cmd(h_X_start);
send_data_cmd(l_X_start);
send_data_cmd(h_X_end);
send_data_cmd(l_X_end);
send_ctrl_cmd(0x2B);
send_data_cmd(h_Y_start);
send_data_cmd(l_Y_start);
send_data_cmd(h_Y_end);
send_data_cmd(l_Y_end);
send_ctrl_cmd(0x29);
send_ctrl_cmd(0x2C);
for (y = y0; y <= y1; ++ y) {
for (x = x0; x <= x1; ++ x) {  //采⽤了RGB24位的数据,所以发送三次
send_data_cmd(0xff);
send_data_cmd(0);
开封市人事局
send_data_cmd(0);
}
}
}
我使⽤这个2.8⼨的屏幕有IO引脚控制发送的是数据还是命令给主控芯⽚,所以在发送时候要注意在主控芯⽚控制命令和数据引脚的⾼低电平VOID send_ctrl_cmd (UCHAR cmd) {
gpiofd_write(cmdDataIO, 0);
lib_bzero(&spiMsg, sizeof(spiMsg));
spiMsg.SPIMSG_pucRdBuffer =pucDestBuffer;
spiMsg.SPIMSG_pucWrBuffer =  &cmd;
spiMsg.SPIMSG_uiLen      = 1;
if (API_SpiDeviceTransfer(pSpiDevice, &spiMsg, 1) != 1) {
printf("failed to spi transfer!\n");
API_SpiDeviceDelete(pSpiDevice);
API_VmmDmaFree(pucSrcBuffer);
return;
}
gpiofd_write(cmdDataIO, 1);
}
VOID send_data_cmd (UCHAR data) {
gpiofd_write(cmdDataIO, 1);
哥本哈根协议
lib_bzero(&spiMsg, sizeof(spiMsg));
spiMsg.SPIMSG_pucRdBuffer = pucDestBuffer;
spiMsg.SPIMSG_pucWrBuffer = &data;
spiMsg.SPIMSG_uiLen      = 1;
if (API_SpiDeviceTransfer(pSpiDevice, &spiMsg, 1) != 1) {        printf("failed to spi transfer!\n");
API_SpiDeviceDelete(pSpiDevice);
API_VmmDmaFree(pucSrcBuffer);
return;
}
gpiofd_write(cmdDataIO, 0);
}

本文发布于:2024-09-23 22:29:54,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/25147.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   屏幕   引脚
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议