CH347/339W开源项目:集SPI、I2C、JTAG、SWD、UART、GPIO多功能为一体(5)

文章目录


系列目录


前言

前面一章利用CH347的USB转SWD接口,搭配OpenOCD,实现了对常见型号MCU下载功能。

本章节主要利用CH347的USB转SPI接口,操作ST7798 LCD(1.8寸,128*160,SPI接口)屏幕,去实现照片的轮询显示。

最终界面效果如下:

功能介绍中提供硬件的连接图。

LCD屏幕控制部分,会轮询显示右侧添加的图片(支持PNG、BMP与JPG),同时会将轮询显示的图片与LCD 硬件屏幕同步。

LCD设置部分:

主要有以下设置:

  1. 图片轮询间隔,默认5S,可拖动修改间隔时间。
  2. LCD屏的DC(命令/数据切换脚)与RST(复位脚)设置,需借用CH347F的两个GPIO引脚实现。默认设置是DC脚(GPIO 0),RST脚(GPIO 1),可根据实际硬件的接线自行修改。
  3. LCD填充屏幕测试:用来测试当前接线与SPI LCD屏幕是否正常,可选择颜色,点击填充屏幕,观察LCD颜色显示是否正常。

    演示视频:

ch347_spi_lcd演示

:显示的图片确认无透明通道,推荐48位深的png图像。
LCD屏幕尺寸固定为128 * 160,因为更大尺寸,CH347难以直接驱动,需额外添加电源电路。

具体实现

CH347相关的SPI操作如下:

cpp 复制代码
UCHAR GPIOInit(UCHAR enable, UCHAR dir, UCHAR data) {
	UCHAR state;
	CH347GPIO_Set(m_devIndex, enable, dir, data);
	CH347GPIO_Get(m_devIndex, &dir, &state);
	return state;
}
void GPIOSet(UCHAR enable, UCHAR dir, UCHAR data) {
	CH347GPIO_Set(m_devIndex, enable, dir, data);
}
bool SpiInit() {
	mSpiCfgS spi_cfg;
	spi_cfg.iMode = 3;
	spi_cfg.iClock = 1;     //30M
	spi_cfg.iByteOrder = 1;   //MSB
	spi_cfg.iSpiWriteReadInterval = 0;
	spi_cfg.iSpiOutDefaultData = 0xFF;
	spi_cfg.iChipSelect = 0x0080;
	spi_cfg.CS1Polarity = 0;
	spi_cfg.CS2Polarity = 0;
	spi_cfg.iIsAutoDeativeCS = 0;
	spi_cfg.iActiveDelay = 0;
	spi_cfg.iDelayDeactive = 0;
	if (CH347SPI_Init(m_devIndex, &spi_cfg) == FALSE) {
		return false;
	}
}
void WriteSpi(std::vector<UCHAR> data)
{
	CH347SPI_Write(m_devIndex, 0x80, data.size(), 128, data.data());
}

其他设置

包含程序界面的主题色设置与使用说明超链接。

总结及未来延伸

本章节完善了CH347 USB转SPI接口功能,基于ST7798 SPI LCD屏幕实现了图片轮询、引脚配置及屏幕测试等基础功能。目前仅支持预设图片轮询,未来可拓展显示温湿度、CPU及内存状态等实用信息。

至此,CH347多功能接口演示软件(集SPI、I2C、JTAG、SWD、UART、GPIO于一体)的主要功能全部完成,覆盖CH347核心协议与外设控制场景,形成了相对完整的CH347外设控制解决方案。未来可进一步优化操作逻辑、增加自定义脚本功能,拓展更多外设适配库,提升工具通用性。

程序发布在SourceForge上,如有任何使用建议欢迎评论留言:

https://sourceforge.net/projects/ch347-multi-function-software/

相关推荐
Hommy886 分钟前
【剪映小助手】图片处理接口
开源·github·aigc·剪映小助手·视频剪辑自动化
X54先生(人文科技)9 分钟前
《元创力》纪实录·卷宗2.1刻舟求剑:一场关于“唯一解”的范式战争
人工智能·架构·开源·零知识证明
汽车仪器仪表相关领域39 分钟前
南华 NHA-604/605 汽车排放气体测试仪:国六b全适配高精度便携检测设备
大数据·人工智能·功能测试·深度学习·安全·fpga开发·压力测试
jeff聊企业数字化1 小时前
即时通讯软件三种方案对比:SaaS、开源、私有部署商业版
开源
嵌入式小站2 小时前
STM32 零基础可移植教程 21:1602A 并口 4 位模式,先显示 Hello
stm32·单片机·嵌入式硬件
ClouGence2 小时前
CloudDM 3.1.0 发布:初始化、驱动管理与升级体验全面优化
docker·开源·数据库管理·企业开发·数据库工具·数据库运维
GPUStack3 小时前
没有 GPU,还能跑大模型吗?vLLM vs llama.cpp 实测对比
人工智能·开源
羊羊一洋3 小时前
GCC __attribute__ 完全指南:从入门到实战
c语言·stm32
该昵称用户已存在3 小时前
开源赋能数据资产化:MyEMS 能源中台的碳数据治理与价值释放设计
开源·能源
云樱梦海4 小时前
FunASR:阿里达摩院开源的工业级语音识别工具包(4 款模型 + Gradio 可视化)
人工智能·开源·语音识别