打印
[RISC-V MCU 应用开发]

请教有谁能提供个CH32V103驱动ST7789或ILI9341的点亮代码

[复制链接]
917|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
panxiaoyi|  楼主 | 2025-3-9 16:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好。
请教一下,看看谁能提供个 CH32V103 驱动 ST7789 或 ILI9341 的点亮代码?我把液晶屏官方的 STM32 的代码移植过来,结果不会显示。
我有官方的 CH32V103R8T6 开发板 和 下载器,也新买了上面的两款中景园彩屏,240x320,都是 SPI 接口
要求:
1、不要外挂 RAM 和 FLASH,因为我还没有学到这里
2、能随便点亮显示点内容即可
3、如果还有 DMA 传输的就更好
多谢,下面是我的接线图

使用特权

评论回复

相关帖子

沙发
panxiaoyi|  楼主 | 2025-3-9 22:08 | 只看该作者
点亮了,用液晶屏官方的代码移植,模拟SPI的。
下一步就是学习SPI-DMA来驱动,如果大家刚好有,希望能给参考一下,多谢

使用特权

评论回复
板凳
L-MCU| | 2025-3-10 14:34 | 只看该作者
panxiaoyi 发表于 2025-3-9 22:08
点亮了,用液晶屏官方的代码移植,模拟SPI的。
下一步就是学习SPI-DMA来驱动,如果大家刚好有,希望能给参 ...

附件例程是CH32L103 SPI+DMA驱屏的例程,可以参考一下

CH32L103 SPI驱动LCD.zip

766.97 KB

使用特权

评论回复
地板
panxiaoyi|  楼主 | 2025-3-10 22:35 | 只看该作者
L-MCU 发表于 2025-3-10 14:34
附件例程是CH32L103 SPI+DMA驱屏的例程,可以参考一下

感谢先,刚才移植试了一下,暂时还不行,不过后续我肯定还会继续的

使用特权

评论回复
5
xionghaoyun| | 2025-3-11 13:59 | 只看该作者
LZ分享代码不

使用特权

评论回复
6
panxiaoyi|  楼主 | 2025-3-11 15:48 | 只看该作者
L-MCU 发表于 2025-3-10 14:34
附件例程是CH32L103 SPI+DMA驱屏的例程,可以参考一下

可以了,多谢 L-MCU ,后面会慢慢学习的。感谢。

微信图片_20250311154537.jpg (1.39 MB )

微信图片_20250311154537.jpg

使用特权

评论回复
7
panxiaoyi|  楼主 | 2025-3-11 15:51 | 只看该作者

这个就是移植过来的代码,我也要慢慢学习

CH32V103R8T6001_SPI2_DMA.rar

583.84 KB

CH32V103R8T6004_模拟SPI 1.rar

647.61 KB

使用特权

评论回复
8
panxiaoyi|  楼主 | 2025-3-30 11:27 | 只看该作者
本帖最后由 panxiaoyi 于 2025-3-30 11:39 编辑

请教一下大家,如下图代码,没有使能中断:问题点:红色箭头。现在的程序是正常的。
如果把 1 移动到 2 的函数里面的最后位置,程序正常。
如果把 1 移动到 3 的函数里面的最开始位置,这是我想要的,但是程序异常。
正常时,显示屏的上半部分会整体的每秒变化一次颜色,同时显示“e”那里会不断的变化字符。
异常时,上部分的颜色不会变化,“e”那里变化正常,但是在屏幕的左上角有 3 个像数点会每秒不断的变化颜色,说明DMA已经发出了3个16比特的颜色数据后就被打断了。
请问是什么回事?


微信图片_20250330112646.jpg (6.56 MB )

微信图片_20250330112646.jpg

微信图片_20250330113537.png (46.92 KB )

微信图片_20250330113537.png

使用特权

评论回复
9
panxiaoyi|  楼主 | 2025-3-30 11:31 | 只看该作者
本帖最后由 panxiaoyi 于 2025-3-30 11:40 编辑

这个是正常的源代码

CH32V103R8T6_Basic.rar

622.38 KB

使用特权

评论回复
10
panxiaoyi|  楼主 | 2025-3-30 11:51 | 只看该作者
标识1,那是颜色填充语句,我用DMA填充颜色到38400个像数,然后就不想死循环等待SPI完成,想在后面需要用到SPI时,再判断SPI是否空闲,没有空闲的话就死循环等待。

当然,在实际的应用中,我会先读取这个SPI完成标记位的,如果没有完成的话,我会跳过的,不会死循环等待的。

就本例来说,把1移动到2的结尾,或者3的开头,它们的硬件时序都是一样的,怎么移动到3的开头处,DMA就只传输了3个16比特的数据,就被终止了?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

52

主题

410

帖子

2

粉丝