你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STM32C0评测】驱动ST7735LCD屏

[复制链接]
lugl 发布时间:2025-4-22 23:37

1、原理图分析,在原理图的接口中我使用ardunio标准接口CN5来连接LCD。

image.png

2、打开stm32cubeMX分配SP1如下:

image.png

修改参数为8bit,高位在前,分频2,CPOL为Low,CPHA 为1Edge,禁用硬件CS

image.png

3、为LCD的RST、DC、CS分配GPIO如下:

image.png

4、生成工程后,移植一个st7735的驱动,将驱动添加到工程中:

image.png

5、修改发送命令、数据的代码如下:

void ST7735_WriteCommand(uint8_t cmd)
{
  HAL_GPIO_WritePin(ST7735_DC_GPIO_Port, ST7735_DC_Pin, GPIO_PIN_RESET);
  HAL_GPIO_WritePin(ST7735_CS_GPIO_Port, ST7735_CS_Pin, GPIO_PIN_RESET);
  HAL_SPI_Transmit(&ST7735_SPI_INSTANCE, &cmd, 1, HAL_MAX_DELAY);
  HAL_GPIO_WritePin(ST7735_CS_GPIO_Port, ST7735_CS_Pin, GPIO_PIN_SET);
}

void ST7735_WriteByte(uint8_t data)
{
  HAL_GPIO_WritePin(ST7735_DC_GPIO_Port, ST7735_DC_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(ST7735_CS_GPIO_Port, ST7735_CS_Pin, GPIO_PIN_RESET);
  HAL_SPI_Transmit(&ST7735_SPI_INSTANCE, &data, 1, HAL_MAX_DELAY);
  HAL_GPIO_WritePin(ST7735_CS_GPIO_Port, ST7735_CS_Pin, GPIO_PIN_SET);
}

void ST7735_WriteData(uint8_t *data, size_t data_size)
{
    HAL_StatusTypeDef spi_state;
  HAL_GPIO_WritePin(ST7735_DC_GPIO_Port, ST7735_DC_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(ST7735_CS_GPIO_Port, ST7735_CS_Pin, GPIO_PIN_RESET);

  spi_state = HAL_SPI_Transmit(&ST7735_SPI_INSTANCE, data, data_size, HAL_MAX_DELAY);
  //spi_state = HAL_SPI_Transmit_DMA(&ST7735_SPI_INSTANCE, data, data_size);
  if(spi_state != HAL_OK)
  {
      printf("spi_send err:%d", spi_state);
  }
  HAL_GPIO_WritePin(ST7735_CS_GPIO_Port, ST7735_CS_Pin, GPIO_PIN_SET);
}

6、在主程序中添加测试函数:

  /* USER CODE BEGIN 2 */
    printf("start\r\n");
    ST7735_Init();
    ST7735_DrawString(10, 10, "STM32C092", ST7735_BLACK, ST7735_WHITE, &Font_11x18);
    ST7735_DrawString(10, 32, "ST7735LCD", ST7735_BLACK, ST7735_WHITE, &Font_11x18);
  /* USER CODE END 2 */

【效果】

c1516f53f49ecd225025dd6d425730b.jpg

收藏 评论2 发布时间:2025-4-22 23:37

举报

2个回答
种花家刘氓兔 回答时间:2025-4-23 11:44:12

大佬下一篇就是移植touchgfx的了嘛

lugl 回答时间:2025-4-23 22:39:15

种花家刘氓兔 发表于 2025-4-23 11:44
大佬下一篇就是移植touchgfx的了嘛

TFT的TouchGFX内存不够呀,搞了个OLED的。

所属标签

ST中文论坛活动

即日起开启活动话题入口,之后的活动统一都放在此处,欢迎大家的加入!


最新内容

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版