打印
[国产单片机]

基于RISC-V MCU CH32V307单片机的触摸与显示方案

[复制链接]
676|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 RISCVnet 于 2022-4-20 16:50 编辑

CH32V307系列MCU内置全速USB、Ethernet和多达8个UART/USART串口等外设模块,在工业控制及民用消费领域有非常大的应用前景。CH32V307内置FSMC功能,使用FSMC可快速操作基于8080协议端口的TFT-LCD显示屏。基于显示屏的可视化产品丰富了人机交互的方式,可以方便地了解设备的运行状况、舒适安全地操纵设备。
LVGL图形库是一种显示库,其官网提供了详细的介绍以及丰富的移植例程。在网络上有许多基于ARM内核单片机产品的LVGL移植教程,读者可参照相关教程深入学习。CH32V307单片机是基于RISC-V架构青稞V4F微处理器的单片机,与基于Cortex内核的单片机有差异,本文以CH32V307显示评估板为例,给出在移植LVGL过程中与ARM内核单片机的不同之处。
移植过程:
1. 准备一个能驱动TFT-LCD显示,且支持触摸的工程;
2. LVGL下载移植文件
3. 修改LVGL文件,并按照需要,将LVGL载入到TFT-LCD工程
4. 运行
这里有5点需要注意:1.引脚对应;2.Delay函数;3.FSMC配置;4.堆栈配置;5.中断声明
1. CH32V307引脚属性请参照数据手册,在程序中对应引脚。
2. Delay函数在使用Mountain River(MTR)创建工程时,在Debug目录下已经定义了Delay_Us()、Delay_Ms(),在ARM单片机例程中习惯使用delay_us()、delay_ms()小写函数名,为此我们需要在debug.h程序末尾添加宏定义,隔离了Stm32例程源码与MTR工程的函数定义问题。

3. CH32V307与ARM单片机内置的FSMC –>NOR/PSRAM地址范围有差异。例如Stm32使用Block1 ->Sector4 的NE4为使能,A10地址引脚为指令/数据选择引脚,则地址如下程序设置。
CH32V307使用Block1-> Sector1 的NE1为使能,A17地址引脚为指令/数据选择引脚,则地址如下程序设置。
4. 堆栈配置,在工程文件ld/link.ld中配置。
5. 中断声明,CH32V307单片机在使用中断时,需要声明中断函数:
Void X_IRQHandler(void)  __attribute__((interrupt(“WCH-Interrupt-fast”)));
一个仪表盘Demo的显示效果

使用特权

评论回复
沙发
trucyw| | 2022-11-26 11:01 | 只看该作者
楼主是否能够发个参考的LVGL+触控显示的工程
trucy2010@163.com
谢谢

使用特权

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

本版积分规则

4

主题

4

帖子

0

粉丝