首页 > 其他分享 >【专题STM32F03】 使用 STM32Cube\Repository\STM32Cube_FW_F1_V1.8.5 中例程由ST7735硬SPI串口屏修改驱动ST7789硬SPI串口LCD屏

【专题STM32F03】 使用 STM32Cube\Repository\STM32Cube_FW_F1_V1.8.5 中例程由ST7735硬SPI串口屏修改驱动ST7789硬SPI串口LCD屏

时间:2024-05-06 15:23:55浏览次数:12  
标签:st7735 WriteReg Cmd STM32Cube Write SPI LCD 串口 Data

1)修改Project

\STM32Cube_FW_F1_V1.8.5\Projects\STM32F103RB-Nucleo\Demonstrations\Adafruit_LCD_1_8_SD_Joystick

2)接线 (见 stm32f1xx_nucleo.h)

LCD_LED_PIN 接高电平

LCD_CS_PIN    接PB6

LCD_DC_PIN    接PA9

LCD_SPI_CLK   接SPI1 ,PA5

LCD_SPI_SDA   接SPI1 ,PA7

3)修改代码

st7735.h

/** 
  * @brief  ST7735 Size  
  */  
//#define  ST7735_LCD_PIXEL_WIDTH    ((uint16_t)128)
//#define  ST7735_LCD_PIXEL_HEIGHT   ((uint16_t)160)
#define  ST7735_LCD_PIXEL_WIDTH    ((uint16_t)240)
#define  ST7735_LCD_PIXEL_HEIGHT   ((uint16_t)320)

st7735.c

void st7735_Init(void)
{
  uint8_t data = 0;
  /* Initialize ST7735 low level bus layer -----------------------------------*/
  LCD_IO_Init();
  /* Out of sleep mode, 0 args, no delay */
    st7735_WriteReg(0x11, 0x00);//LCD_Write_Cmd(0x11);
    LCD_Delay(10);
    st7735_WriteReg(0x36, 0x00);//LCD_Write_Cmd(0x36);
                                //LCD_Write_Data(0x00);       //横屏  如果设置不对,会出现两种色块分屏
    //LCD_Write_Data (0xa0);    //横屏
    st7735_WriteReg(0x3a, 0x05);//LCD_Write_Cmd(0x3a);
                                //LCD_Write_Data (0x05);      //像素点的数据格式设置为 RGB:565
 
  //与屏的型号有关
    st7735_WriteReg(0x20, 0x00);//LCD_Write_Cmd(0x20);  // 颜色值需按位取反
  /* porch 设置 */
    //st7735_WriteReg(0x2b, 0x00);//LCD_Write_Cmd(0xb2);
    st7735_WriteReg(0x2b, 0x0c);//LCD_Write_Data (0x0c); 
    st7735_WriteReg(0x2b, 0x0c);//LCD_Write_Data (0x0c); 
    st7735_WriteReg(0x2b, 0x00);//LCD_Write_Data (0x00); 
    st7735_WriteReg(0x2b, 0x33);//LCD_Write_Data (0x33);
    st7735_WriteReg(0x2b, 0x33);//LCD_Write_Data (0x33);
    /* VGH设置 */ 
    st7735_WriteReg(0xb7, 0x35);//LCD_Write_Cmd(0xb7);
                                //LCD_Write_Data (0x35);
  /* VCOM 设置 */
    st7735_WriteReg(0xbb, 0x35);//LCD_Write_Cmd(0xbb);
                                //LCD_Write_Data (0x35);
    /* LCM 设置 */
    st7735_WriteReg(0xc0, 0x2c);//LCD_Write_Cmd(0xc0);
                                //LCD_Write_Data (0x2c);
    /* VDV and VRH 设置 */
    st7735_WriteReg(0xc2, 0x01);//LCD_Write_Cmd(0xc2);
                                //LCD_Write_Data (0x01);
    /* VRH 设置 */
    st7735_WriteReg(0xc3, 0x0b);//LCD_Write_Cmd(0xc3);
                                //LCD_Write_Data (0x0b);
    /* VDV 设置 */
    st7735_WriteReg(0xc4, 0x20);//LCD_Write_Cmd(0xc4);
                                //LCD_Write_Data (0x20);
    /* 普通模式下显存速率设置 60Mhz */
    st7735_WriteReg(0xc6, 0x1e);//LCD_Write_Cmd(0xc6);
                                //LCD_Write_Data (0x1e);
     /* 电源控制 */
    st7735_WriteReg(0xd0, 0xa4);//LCD_Write_Cmd(0xd0);
                                //LCD_Write_Data (0xa4);
    st7735_WriteReg(0xd0, 0xa1);//LCD_Write_Data (0xa1);
  /* 正电压设置 */
    //st7735_WriteReg(0xe0, 0x00);//LCD_Write_Cmd(0xE0);    //Set Gamma
    st7735_WriteReg(0xe0, 0xd0);//LCD_Write_Data (0xd0);
    st7735_WriteReg(0xe0, 0x00);//LCD_Write_Data (0x00);
    st7735_WriteReg(0xe0, 0x02);//LCD_Write_Data (0x02);
    st7735_WriteReg(0xe0, 0x07);//LCD_Write_Data (0x07);
    st7735_WriteReg(0xe0, 0x0b);//LCD_Write_Data (0x0b);
    st7735_WriteReg(0xe0, 0x1a);//LCD_Write_Data (0x1a);
    st7735_WriteReg(0xe0, 0x31);//LCD_Write_Data (0x31);
    st7735_WriteReg(0xe0, 0x54);//LCD_Write_Data (0x54);
    st7735_WriteReg(0xe0, 0x40);//LCD_Write_Data (0x40);
    st7735_WriteReg(0xe0, 0x29);//LCD_Write_Data (0x29);
    st7735_WriteReg(0xe0, 0x12);//LCD_Write_Data (0x12);
    st7735_WriteReg(0xe0, 0x12);//LCD_Write_Data (0x12);
    st7735_WriteReg(0xe0, 0x12);//LCD_Write_Data (0x12);
    st7735_WriteReg(0xe0, 0x17);//LCD_Write_Data (0x17);
    /* 负电压设置 */
    //st7735_WriteReg(0xe1, 0x00);//LCD_Write_Cmd(0XE1);    //Set Gamma 
    st7735_WriteReg(0xe1, 0xd0);//LCD_Write_Data (0xd0);
    st7735_WriteReg(0xe1, 0x00);//LCD_Write_Data (0x00);
    st7735_WriteReg(0xe1, 0x02);//LCD_Write_Data (0x02);
    st7735_WriteReg(0xe1, 0x07);//LCD_Write_Data (0x07);
    st7735_WriteReg(0xe1, 0x05);//LCD_Write_Data (0x05);
    st7735_WriteReg(0xe1, 0x25);//LCD_Write_Data (0x25);
    st7735_WriteReg(0xe1, 0x2d);//LCD_Write_Data (0x2d);
    st7735_WriteReg(0xe1, 0x44);//LCD_Write_Data (0x44);
    st7735_WriteReg(0xe1, 0x45);//LCD_Write_Data (0x45);
    st7735_WriteReg(0xe1, 0x1c);//LCD_Write_Data (0x1c);
    st7735_WriteReg(0xe1, 0x18);//LCD_Write_Data (0x18);
    st7735_WriteReg(0xe1, 0x16);//LCD_Write_Data (0x16);
    st7735_WriteReg(0xe1, 0x1c);//LCD_Write_Data (0x1c);
    st7735_WriteReg(0xe1, 0x1d);//LCD_Write_Data (0x1d);
  /* 显示开 */  
    st7735_WriteReg(0x29, 0x00);//LCD_Write_Cmd(0x29);
}

 

标签:st7735,WriteReg,Cmd,STM32Cube,Write,SPI,LCD,串口,Data
From: https://www.cnblogs.com/excellentHellen/p/18175053

相关文章

  • SPI协议
    CPOL就是决定SCLK这个时钟信号线,在没有数据传输的时候的电平状态。CPOL=0:空闲状态时,SCLK保持低电平CPOL=1:空闲状态时,SCLK保持高电平 CPHA就是决定数据位传输是从第一个时钟(SCLK)边沿开始,还是第二个从二个时钟(SCLK)边沿开始。CPHA=0:数据从第一个时钟(SLCK)边沿开......
  • 自旋锁spinlock的实现
    自旋锁,顾名思义:自己在原地打转,等待资源可用,一旦可用就上锁霸占它。问题来了,假设别人已经上锁了,你原地打转会占住CPU资源了,别的程序怎么运行?它没有CPU怎么解锁?这个问题,有2个答案:①原地打转的是CPUx,以后CPUy会解锁:这涉及多个CPU,适用于SMP系统;②对于单CPU系统,自旋锁的“自旋......
  • AppSpider Pro 7.5.009 for Windows - Web 应用程序安全测试
    AppSpiderPro7.5.009forWindows-Web应用程序安全测试Rapid7DynamicApplicationSecurityTesting(DAST)请访问原文链接:https://sysin.org/blog/appspider/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgappspider没有任何应用程序未经测试,没有未知风险......
  • rt1052点亮0.96寸spi屏
    一,前言目的是用rgb屏,但是rgb屏硬件还没准备好,所以要先学习下lvgl上位机,但是学习完要烧录到屏中看效果,所以我今天就先点亮spi屏。找了之前stm32时候点亮频的lcd驱动进行的移植,cs我不是gpio控制的,所以注释了2行,看起来无影响。二,说明0.96存spi驱动的LCD屏ST7735S驱动成功,已经备份......
  • linux下调试串口设备
    USB转串口常用CH34x芯片,该芯片有linux下的驱动。在默认情况下,大部分linux发行版都包含了CH34x的驱动,唯一缺点就是版本比较久。可以先插上开发板,一般是挂载到/dev/ttyCH341USB0文件下,如果该文件不存在,有两种可能,一种是驱动版本太久,可以下载官方的驱动文件,然后编译安装。官方驱......
  • 轻松使用Aspire rabbitmq framework
    轻松使用aspirerabbitmq创作初衷aspire是微软基金会推出的新一代云原生编排框架,具体请看https://learn.microsoft.com/en-us/dotnet/aspire/get-started/aspire-overview我从preview1-preview6(目前最新2024/5/1)一直都有使用,在第一版的时候我就用它放入了我的一个微服务......
  • Spirng 当中 Bean的作用域
    Spirng当中Bean的作用域@目录Spirng当中Bean的作用域每博一文案1.Spring6当中的Bean的作用域1.2singleton默认1.3prototype1.4Spring中的bean标签当中scope=属性其他的值说明1.5自定义作用域,一个线程一个Bean2.总结:3.最后:每博一文案青年,青年!无论受怎样的......
  • Linux内核源码-存储驱动之 QSPI Flash
    传输方式DIO/QIO/DOUT/QPIQPI模式(QuadPeripheralInterface),所有阶段都通过4线传输。与之相对的是SPI。SPI模式:纯种SPI(MISO/MOSI两个数据线)DOUT全称DualI/O,命令字和地址字均为单线,仅在数据阶段为双线。QOUT全称QuadI/O,命令字和地址字均为单线,仅在数据阶段为双线......
  • Linux内核之SPI协议
    SPI(SerialPeripheralInterface,串行外设接口)是一种同步串行的行业标准,但是并没有像I2C那样有标准文档,它还有主从、可片选的特性。图源自SerialPeripheralInterface-wikipedia时序图放个经典老图,来源未知。相位和极性决定了采样点,主从采样点一致时数据正确,不一致时会导致......
  • FreeRTOS串口中断接收数据
    1volatileuint8_tRxBuffer;2voidStartTask04(voidconst*argument)3{4/*USERCODEBEGINStartTask04*/5uint8_tlen;6osEventevt;7HAL_UART_Receive_IT(&huart1,&RxBuffer,1);8__HAL_UART_ENABLE_IT(&huart1,U......