硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5954|回复: 7
收起左侧

[emWin] STM32F103RET6 emWin ILI9488 [SPI DMA]

  [复制链接]

6

主题

27

回帖

45

积分

新手上路

积分
45
发表于 2021-1-2 20:18:37 | 显示全部楼层 |阅读模式
1、使用3.5寸SPI触摸显示屏,分辨率:480*320 ;驱动IC: ILI9488;
     采用的是SPI DMA 驱动,使用emWin。



3.5英寸SPI触摸显示屏.jpg

2、TFT LCD驱动接口部分:
     2.8inch,3.5inch接口通用


TFT LCD接口电路.jpg


3、项目产品照片:


STM32高精度温控板[4Ch]-4.jpg

4、产品配线图:


STM32高精度温控板[4Ch]-1.jpg

STM32高精度温控板[4Ch]-2.jpg

5、产品适配TFT LCD 对照:


STM32高精度温控板[4Ch]-3.jpg

6、应用说明:
  a.3.5英寸SPI触摸显示屏模块,采用SPI四线接口,只能支持RGB666数据模式。
      【说明: 想采用RGB565模式,怎么测试都不能正常初始化!】

  b.因为原来项目用的是2.8英寸SPI触摸显示屏模块,驱动IC是: ILI9341,采用RGB565模式,是可以正常使用的。
   现在采用3.5英寸SPI触摸显示屏模块,想继续选用原来的模式,怎么测试都没有成功,只好改成RGB666模式的,
   才正常运行。

  c. 原来采用RGB565模式的SPI DMA驱动,也就必须修改,才能正常运行。

  请看下面的DMA驱动代码部分:  



LCD_Core.c (4.69 KB, 下载次数: 111)

ILI9488_ucgui.rar (1.94 KB, 下载次数: 139)

void LCD_putPixel(u16 x, u16 y, u16 color) {
  
   u8 t3clr[3];

   t3clr[0]=(color>>8)&0xF8;
   t3clr[1]=(color>>3)&0xFC;
   t3clr[2]=color<<3;

    LCD_setAddressWindowToWrite(x, y, x, y);   
    dmaSendData8(t3clr, 3);   
}

static void LCD_putPixelCont(u16 x, u16 y, u16 color) {
   LCD_putPixel(x,y,color);
}

void LCD_fillRect(u16 x1, u16 y1, u16 w, u16 h, u16 color) {
    u32 count = w * h;
    LCD_setAddressWindowToWrite(x1, y1, (u16) (x1 + w - 1), (u16) (y1 + h - 1));   
    dmaFill8(color, count);   
}


void LCD_fillScreen(u16 color) {
    LCD_fillRect(0, 0, LCD_getWidth(), LCD_getHeight(), color);
}






void SPI_LCD_DMAInit(void) {
      
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);

    // TX
    NVIC_EnableIRQ(DMA1_Channel3_IRQn);
    DMA_ITConfig(DMA1_Channel3, DMA_IT_TC, ENABLE);

    // RX
    NVIC_EnableIRQ(DMA1_Channel2_IRQn);
    DMA_ITConfig(DMA1_Channel2, DMA_IT_TC, ENABLE);

    SPI_I2S_DMACmd(SPI_MASTER, SPI_I2S_DMAReq_Tx, ENABLE);
    SPI_I2S_DMACmd(SPI_MASTER, SPI_I2S_DMAReq_Rx, ENABLE);
}



















回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107418
QQ
发表于 2021-1-3 08:51:51 | 显示全部楼层
谢谢楼主分享。
回复

使用道具 举报

336

主题

2042

回帖

3055

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3055
发表于 2021-1-6 09:13:19 | 显示全部楼层
本帖最后由 caicaptain2 于 2021-1-6 09:22 编辑

呵呵,和我用的液晶屏一样。网上其他家的SPI接口液晶都没有读取功能,就这个模块有。我 也有2个帖子关于这个液晶屏的设计总结。
http://www.armbbs.cn/forum.php?m ... id=99466&extra=
http://www.armbbs.cn/forum.php?m ... id=99381&extra=

回复

使用道具 举报

6

主题

27

回帖

45

积分

新手上路

积分
45
 楼主| 发表于 2021-1-6 10:47:21 | 显示全部楼层
非常感谢管理员,以及版主的回复!


采用SPI接口的TFT彩屏模块,SPI采用DMA模式后,使用emWin GUI,运行起来都非常流畅!


下面是我采用TFT2.8英寸彩色触摸屏模块,做的产品:

TFT28_96彩色触摸屏温控器:
  采用2.8英寸彩色显示屏,配备触摸屏。尺寸大小:96x96.
1、不仅仅是多路温控器,目前最多支持3路温度传感器输入,3路控温输出。
2、还具备辅助开关输出控制功能,基本开关输出4路,扩展开关输出6路。
3、还具备定时器/计时器功能,同时支持4路计时器,4路定时器输出控制功能。



请看:
1、 TFT28彩屏温控器[单路]_操作说明:
         TFT28彩屏温控器[单路]_操作说明.pdf (258.76 KB, 下载次数: 22)

2、TFT28_96多路温控器_软件界面:
      TFT28_96多路温控器_软件界面.pdf (875.36 KB, 下载次数: 29)



回复

使用道具 举报

0

主题

14

回帖

14

积分

新手上路

积分
14
发表于 2021-1-20 15:45:38 | 显示全部楼层
感谢分享,这种固态继电器哪里买的呢。体积很小。
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

不抛弃不放弃

积分
7
发表于 2021-1-24 20:44:26 | 显示全部楼层
xfcbbs2 发表于 2021-1-6 10:47
非常感谢管理员,以及版主的回复!

能否分享DMA驱动这个显示屏驱动
回复

使用道具 举报

6

主题

106

回帖

124

积分

初级会员

积分
124
发表于 2022-4-21 16:50:58 | 显示全部楼层
能否分享DMA驱动这个显示屏驱动
回复

使用道具 举报

6

主题

27

回帖

45

积分

新手上路

积分
45
 楼主| 发表于 2022-4-21 22:46:01 | 显示全部楼层
xudongqiang 发表于 2022-4-21 16:50
能否分享DMA驱动这个显示屏驱动

我原来发的帖子里,不是有驱动部分:  

1、LCD_Core.c
2、ILI9488_ucgui.rar
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-31 06:05 , Processed in 0.191888 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表