基于 TI MSPM0G3519 微控制器的电子墨水屏驱动与应用系统,支持图片轮播、文字渲染、以及 PC 性能监控显示。 基于MSPMG3519的关于汉朔4.2寸黑白电子价签墨水屏E042A13显示器的墨水屏驱动及例程
| 按键 | 功能 |
|---|---|
| 1 | 清屏(全白) |
| 2 | 显示居中 "Hello World" 文字(2x 缩放) |
| 3 | 全屏填充黑色 |
| 4 | 轮播 5 张预置全屏位图(400x300),之后每 30 秒自动切换 |
按 0 进入 PC 监控模式,通过串口接收主机发送的实时性能数据:
- CPU / 内存 / 磁盘 / GPU 使用率(带进度条图形化显示)
- 实时 FPS
- 日期时间
- 底部轮播编程名言
- 按 1-4 退出监控模式
PC 端数据采集脚本见 pc_monitor/ 目录。
| 项目 | 规格 |
|---|---|
| MCU | TI MSPM0G3519 (Cortex-M0+, 80MHz) |
| Flash / SRAM | 512 KB / 128 KB (2x64KB) |
| 电子墨水屏 | SSD1619 控制器,400x300 像素,黑白红三色 |
| 通信接口 | GPIO 软件模拟 SPI(Bit-bang) |
| 键盘 | 4x4 矩阵键盘 |
| 其他 | DHT11 温湿度传感器驱动(已实现,预留扩展) |
E-Paper SPI(Bit-bang):
| 信号 | 引脚 |
|---|---|
| CS | PC9 |
| DC | PC8 |
| RST | PB23 |
| SCK (D0) | PB3 |
| MOSI (D1) | PB2 |
| BUSY | PC9(输入) |
串口:
| 接口 | 引脚 | 波特率 | 用途 |
|---|---|---|---|
| UART0 | PA10/PA11 | 115200 | 通用串口 |
| UART4 | PB10/PB11 | 9600 | 接收 PC 监控数据 |
e_paper/
├── User/
│ ├── main.c # 主程序入口,按键处理,模式切换
│ ├── ti_msp_dl_config.c/h # SysConfig 自动生成的外设初始化
│ └── config.syscfg # SysConfig 工程文件
├── Project/
│ ├── epaper.c/h # 电子墨水屏驱动(SPI、绘图、文字、BMP)
│ ├── uart_receiver.c/h # UART 接收解析(环形缓冲区 + 行协议)
│ ├── bmp_data.c/h # 5 张 400x300 预置位图数据
│ ├── oledfont.h # 字模数据(8x16 ASCII + 16x16 中文)
│ ├── key.c/h # 4x4 矩阵键盘扫描
│ ├── DHT11.c/h # DHT11 温湿度传感器驱动
│ ├── *.uvprojx # Keil uVision 工程文件
│ └── mspm0g3519.sct # ARM 链接脚本
├── BSP/
│ ├── bsp.h # 板级支持包
│ └── delay/ # 延时函数(基于 80MHz 时钟)
├── Source/
│ └── third_party/CMSIS/ # ARM CMSIS 库
├── pc_monitor/
│ ├── pc_monitor.py # PC 端性能采集脚本
│ └── requirements.txt # Python 依赖
└── Output/ # 编译输出(hex、axf 等)
| 工具 | 版本/说明 |
|---|---|
| IDE | Keil uVision 5 (MDK-ARM) |
| 编译器 | ARMClang V6.21 (AC6) |
| SDK | TI MSPM0 SDK 2.08.00.03 |
| 设备包 | TexasInstruments.MSPM0GX51X_DFP.1.0.0 |
| SysConfig | v1.27.0+ |
- 安装 TI MSPM0 SDK 和 Keil MDK-ARM
- 用 Keil 打开
Project/empty.uvprojx - 确认 SDK 路径正确(默认
C:\ti\mspm0_sdk_2_08_00_03) - Build → Download 烧录到目标板
将 PC 串口(USB-TTL 模块)连接到 MCU 的 UART4:
- TX → PB11 (MCU RX)
- RX → PB10 (MCU TX)
- GND → GND
cd pc_monitor
pip install -r requirements.txtpython pc_monitor.py脚本每 60 秒采集一次 CPU、内存、磁盘、GPU 使用率及 FPS,通过串口发送到 MCU。
TIME: 2026-06-02 14:30
CPU: 45.2%
MEM: 62.1%
DSK: 78.3%
GPU: 12.5%
FPS: 60
END
- Bit-bang SPI:SSD1619 协议要求 CS 在多字节命令序列中保持低电平,软件模拟 SPI 比硬件 SPI 更灵活
- 双缓冲刷新:先清屏再写入新帧数据,减少电子墨水屏残影
- 15KB 帧缓冲:
EPD_GRAM[300][50],每字节 8 像素,bit=1 白色,bit=0 黑色 - UART 环形缓冲:128 字节,ISR 驱动接收,行协议解析
本项目基于 TI MSPM0 SDK 开发,SDK 部分遵循 TI 的许可协议。
- TI MSPM0 SDK
- ARM CMSIS
- 字模数据来源于 SSD1306 OLED 开源驱动