Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
LCD
RT-Thread
瑞萨_RA6M4
基于RT-Thread+RA6M4的5寸屏电脑状态实时显示
发布于 2022-07-11 16:17:53 浏览:716
订阅该版
[tocm] # 应用的背景: 在PC使用过程中,会不时的卡顿,经常是不知名的软件CPU占用率过高,或是内存使用过多的原因,而且总是要打开任务管理器查看原因,有时卡顿时,还打不开任务管理器,所以,在桌面上设计一个可以实时显示PC硬件运行状态的终端屏,用于显示PC的部分硬件信息,包括CPU与GPU的使用率、温度等。 此项目也旨在熟悉RA6M4的芯片功能,与RT-Thread与RA6M4的综合使用。 ## 实现功能: RA6M4使用Buses外设,通过SSD1963芯片,驱动一块5寸的RGB液晶屏,来显示电脑的运行状态,硬件信息。 显示界面使用lvgl进行设计,向RA6M4中移植lvgl库。 电脑与RA6M4通过USB转TTL电路进行通讯。 # 整体系统框架: RT-Thread使用情况概述: 在调试阶段,RT-Thread将finsh控制台串口设置成串口1。原串口7引脚与bus引脚复用冲突。 最后项目应用时,由串口1来进行与PC机的通讯,finsh功能不再使用。 由于RTT还没有支持Bus外设,由原生库进行处理初始化。 ## 硬件框架: ![clipboard.png](https://oss-club.rt-thread.org/uploads/20220711/61c094f505344c8f96b482dd1b032080.png "clipboard.png") 设计一块可以直接插接在RA6M4开发板上的扩展板,包括液晶屏驱动、USB转TTL,net、SD card等电路。 项目需要使用的就是LCD驱动与USB转TTL串口功能。其他功能暂不使用。 扩展板与开发板接口统一,可直接插在开发板上。 将RA6M4开发板上的NC的两个引脚与5V做跳线,直接由开发板向扩展板进行供电,方便调试时的接线。 扩展板使用kicad进行设计,3D图与实物图如下所示: ![clipboard.png](https://oss-club.rt-thread.org/uploads/20220711/3058b37661868ba6ed676befb501e952.png.webp "clipboard.png") ![微信图片_20220711160542.jpg](https://oss-club.rt-thread.org/uploads/20220711/8a1e941c97d58a5b525f076166cf60d7.jpg.webp "微信图片_20220711160542.jpg") ## 软件框架说明: ![clipboard.png](https://oss-club.rt-thread.org/uploads/20220711/50f71773b2b5472394b5102debb18c59.png "clipboard.png") 整个软件代码,使用RT-Thread Studio进行工程管理与编译,RT-Thread Studio版本2.2.3;RT-Thread版本4.1.0。 软件模块说明: RT-Thread使用的硬件驱动有:串口模块、GPIO模块。 使用的组件有:msh shell组件。 由于RT-Thread并没有对ex bus外设进行支持,相应的操作并没有使用RT-Thread的软件包,而是用寄存器直接配置的方式。 HardwareSerialMonitor.exe以管理员权限打开,指定好串口。 HardwareSerialMonitor的地址:https://github.com/koogar/HardwareSerialMonitor/releases ![clipboard.png](https://oss-club.rt-thread.org/uploads/20220711/14451902148e1f5ad46d0d06a73e1888.png "clipboard.png") # 作品完整图片 ![微信图片_20220711160546.jpg](https://oss-club.rt-thread.org/uploads/20220711/ca934206cbaf1520e55dedef9f801a1f.jpg.webp "微信图片_20220711160546.jpg") # 视频演示效果 [de929c5e83c59506e1b2ea2f8ff69127.mp4](https://club.rt-thread.org/file_download/3c3de64fd95253ba) # 代码地址: https://gitee.com/jinyi7016/ra6-m4_-pc_-state # 具体关键步骤: 安装sc_v2021-10_fsp_v3.5.0,并配置System:BUS 如下图所示。 ![clipboard.png](https://oss-club.rt-thread.org/uploads/20220711/32ed03ca34664ecb9a1c015c658df613.png.webp "clipboard.png") CS使用的是CS1,根据数据手册上的地址映射来确定外设的访问地址。 ![clipboard.png](https://oss-club.rt-thread.org/uploads/20220711/e7d2c86f114549f61d780c273fc28a4e.png.webp "clipboard.png") ```c #define Cmd_Reg ( *(volatile uint16_t *) 0x81000000) #define Data_Reg ( *(volatile uint16_t *) 0x81060000) ``` 根据数据手册的寄存器说明,对BUS外设进行初始化,使用16bit模式。RA6M4的BUs与STM32的FSMC是类似的,但似乎是没有相应的API来直接配置,只能是按寄存器来配置了。 好在此类外设的配置并不复杂,关键的模式与时序配置就可以了。 代码如下: ```c R_BUS->CSb[1].CR_b.BSIZE = 0; //16bit R_BUS->CSb[1].CR_b.EMODE = 0; //小端 R_BUS->CSa[1].MOD_b.WRMOD = 1; //字节模式 R_BUS->CSb[1].CR_b.EXENB = 1; //enable R_BUS->CSRECEN = 0x3e00;//0x0002; R_BUS->CSa[1].WCR2_b.CSON = 3; //CS wait clock cycles R_BUS->CSa[1].WCR2_b.RDON = 3; //RD wait clock cycles R_BUS->CSa[1].WCR2_b.WRON = 3; //SR wait clock cycles R_BUS->CSa[1].WCR1_b.CSRWAIT = 8; //Read Cycle Wait Select R_BUS->CSa[1].WCR1_b.CSWWAIT = 8; //Write Cycle Wait Select R_BUS->CSa[1].WCR2_b.CSWOFF = 1; //Write-Access CS Extension Cycle Select R_BUS->CSa[1].WCR2_b.WDOFF = 3; //Write Data Output Extension Cycle Select ``` 初始化LCD驱动芯片SSD1963,实现打点等功能。 下载lvgl的源码,移植到工程中,具体代码,参见gitee中。 ![clipboard.png](https://oss-club.rt-thread.org/uploads/20220711/d9a728a7120175d72e643b43e8c111d5.png "clipboard.png") 根据RTT的官方文档,移植相应的函数:https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/packages-manual/lvgl-docs/introduction 使用NXP的lvgl设计工具对界面进行设计。将生成的代码移植到工程中,由于其对lvgl8.2的支持还是有些问题,要修改一些头文件。 并将生成的代码的头文件路径添加到工程中。 ![clipboard.png](https://oss-club.rt-thread.org/uploads/20220711/b7f1d9a8a5b7829e469f7322092ac254.png.webp "clipboard.png") 在进程中进行数据的刷新与chart增加数据。 串口设备的使用,参考官方文档:https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/uart/uart_v1/uart ## 注意事项: 此项目源码根据自身电脑的硬件信息进行了适配,串口数据的解析是匹配了本机的电脑硬件信息,其他的电脑上的运行,可能要进行相应的修改。 本文使用的HardwareSerialMonitor是HardwareSerialMonitor_v1.1c,其他版本的程序,可能要进行数据解析的调整。调试时,可先用虚拟串口增收HardwareSerialMonitor的数据进行分析后再解析。 本项目上位机运行的程序路径为:HardwareSerialMonitor-main\OHM\DEPRECIATED\HardwareSerialMonitor_v1.1c\HardwareSerialMonitor\bin\Release\HardwareSerialMonitor.exe;(Run as admin)
1
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
MSYW_1589
这家伙很懒,什么也没写!
文章
1
回答
0
被采纳
0
关注TA
发私信
相关文章
1
RT-THREAD在STM32H747平台上移植lwip
2
正点原子miniSTM32开发板读写sdcard
3
反馈rtt串口驱动对低功耗串口lpuart1不兼容的问题
4
Keil MDK 移植 RT-Thread Nano
5
RT1061/1052 带 RTT + LWIP和LPSPI,有什么坑要注意吗?
6
RT thread HID 如何收发数据
7
求一份基于RTT系统封装好的STM32F1系列的FLASH操作程序
8
RT-Thread修改项目名称之后不能下载
9
rt-studio编译c++
10
有木有移植rt-thread(nano)到riscv 32位MCU上
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
a1012112796
10
个答案
1
次被采纳
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
YZRD
2
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部