ercircle 发表于 2025-7-13 16:11:21

AiCube 图形化自动生成程序,驱动 ST7735S,TFT-彩屏, @Ai8051U, 跟帖问TFT, ST7739

在此跟帖问 TFT程序, 几乎给您全搞定

AiCube 图形化自动生成程序,驱动 ST7735S,TFT-彩屏
新建 AiCube 工程, @Ai8051U-40MHz :

选择40MHz时钟:

配置SPI:

允许 SPI 有 DMA 支持:


添加 SPI DMA 中断 标志:


导入屏驱代码,添加DMA刷图函数:

完善main函数:


图片取模(注意DMA顺序发送,选高位在前):




添加图片数据,注意DMA要用XDATA,
强制四字节对齐,高位在前顺序发送:



AiCube 图形化自动生成代码,驱动ST7735S-TFT彩屏, @Ai8051U-40MHz烧录代码:
840

参考链接:
ST7735S, SPI, AI8051U, 驱动 TFT-LCD, - 老鸟反刍/吐槽,新手乐园,毕业设计 国芯技术交流网站 - AI32位8051交流社区
DMA_LCM/TFT 疑问上报 | 强制4字节对齐 - DMA支持: QSPI, SPI, I2S, I2C, 4组串口, i8080/MC6800-TFT 国芯技术交流网站 - AI32位8051交流社区


专业理工男 发表于 2025-7-13 18:35:32

请问这个刷一帧需要多长时间有测试过吗?我用的纯软件的要100ms左右才能刷一帧,感觉容易造成其他程序堵塞。

ercircle 发表于 2025-7-13 19:00:00

专业理工男 发表于 2025-7-13 18:35
请问这个刷一帧需要多长时间有测试过吗?我用的纯软件的要100ms左右才能刷一帧,感觉容易造成其他程序堵塞 ...


HSSPI_SetClockDivider(1); 时,SPI CLK大概5M,一帧是个53ms,再快屏没反应了。





专业理工男 发表于 2025-7-13 19:08:15

ercircle 发表于 2025-7-13 19:00
HSSPI_SetClockDivider(1); 时,SPI CLK大概5M,一帧是个53ms,再快屏没反应了。




那很可以了,快了近一半了{:qiang:}

ercircle 发表于 2025-7-13 19:12:28

AiCube 图形化自动生成代码,驱动ST7735S-TFT彩屏,上面是 Ai8051U !
下面改成:
STC32G12K128 / STC8H8K64U, xdata小 不够存一帧,搞一堆篮球玩玩,
后续可以考虑图片放在片外的串行Flash中:

841

神农鼎 发表于 2025-7-13 19:52:34

线要短, SPI 才能快,13.5M@3.3V,   20M@5V


SPI-DMA,线越短越细,越好,这样寄生分布电容小,寄生电阻小,传输速度快
15M@3.3V ?
20M@3.3V ?

ercircle 发表于 2025-7-13 20:49:12

专业理工男 发表于 2025-7-13 19:08
那很可以了,快了近一半了
果然,换擎天柱,5V, 36.864MHz,
SPI 二分频,18.432Mbps, 能跑到18mS



专业理工男 发表于 2025-7-13 23:41:01

ercircle 发表于 2025-7-13 20:49
果然,换擎天柱,5V, 36.864MHz,
SPI 二分频,18.432Mbps 能跑到18ms你这个时间测得是屏幕DMA刷新一帧的时间是吗?
我用你提供的程序测了一下,
发现修改屏幕一帧数据的时间在80ms左右(这个应该是程序指令执行的时间),
不知道对不对。

专业理工男 发表于 2025-7-14 00:24:46

专业理工男 发表于 2025-7-13 23:41
你这个时间测得是屏幕DMA刷新一帧的时间是吗?
我用你提供的程序测了一下,
发现修改屏幕一帧数据的时间在8 ...
找到这个的问题了,
程序里不应该加下图的那句等待,DMA的特长应该是可以独立于CPU进行数据搬运,
多加了那句就相当于在DMA自动发送数据时CPU一直在等待,不能执行其他语句了,
实测正常一个函数执行完只要不到50us。


神农鼎 发表于 2025-7-14 08:05:17

期待, SPI-Flash, DMA-P2P 直接送, SPI-TFT彩屏








页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: AiCube 图形化自动生成程序,驱动 ST7735S,TFT-彩屏, @Ai8051U, 跟帖问TFT, ST7739