AiPi-Clock-Mini迷你网络时钟,Ai-WB2-12F(BL602) #28
XEMOWO
started this conversation in
Show and tell(技术分享)
Replies: 2 comments 3 replies
|
哎哟,还真的交作业啦~ |
1 reply
|
学习了,SPI 发送问题原来出在这 |
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
🕐 AiPi-Clock-Mini
📌 项目简介
🧩 功能总览
✅ 主要功能 (出厂默认开启)
#XBG#XCLOCKClock-Mini-XXXX/12345678#X前缀行协议,应答/事件推送,与日志共用 UART0🔧 可选功能 (出厂默认关闭)
wx_on=0,key 已内置)#XWXAPI切源,#XWXKEY下发 Keywall_mode=0)#XWALL开启;时钟↔壁纸各 5s 独立时长切换#XIMGSTART/#XIMG/#XIMGENDhex 分块上传#XBOOTIMG上传,media 分区 XIP 直读#XMON总开关 +#XLAMP颜色 (黄/绿/红/黄色呼吸)🖼️ 项目图片
⚙️ 构建与烧录
📁 项目结构
⏱️ 固件启动流程
🔬 技术分享:BL602 如何驱动 1.47" LCD
1️⃣ 硬件连接与总线架构
关键点:SPI 数据线只有 MOSI (半双工写)。 屏幕只接收不回复,所以 MISO 不需要复用 —— 这也是 GPIO17 能同时干两件事 (先 RST、后复用为 SPI) 的原因。
2️⃣ 为什么不能用
hosal_spi_send?(血泪坑)hosal_spi_sendSPI_Send_8bits(bl602_std)3️⃣ SPI0 初始化详解
为什么能上 40MHz?
4️⃣ 命令/数据时序 (_cmd / _dat)
ST7789 靠 DC 线区分命令与数据:
5️⃣ ST7789 初始化序列 (逐条拆解)
0x36 MADCTL0x600x3A COLMOD0x550x21 INVON0xE0/0xE1初始化最后还有一步:全屏清零,防止上电出现雪花噪点:
6️⃣ 窗口写入:0x2A / 0x2B / 0x2C (画哪里写哪里)
ST7789 的显存写入必须先设窗口,再灌像素:
7️⃣ LVGL flush 回调:字节序是最深的坑
为什么必须交换字节?
SWAP=0)00 F8F8 008️⃣ LVGL 心跳与缓冲策略 (内存紧张 BL602)
9️⃣ 开机图:不依赖 LVGL 的直刷路径
boot_builtin.c常量数组 (flash)#XBOOTIMG上传,无需读 flash 到 RAM📡 配网模式详解
Clock-Mini-XXXX(MAC 后 4 位)192.168.169.1🖥️ 串口协议 (xcmd)
#XVER#XST#XLAMP#XMON#XBG#XCITY#XWXCITY#XWXAPI#XWXKEY#XWALL#XIMGSTART#XIMG#XIMGEND#XBOOTIMG#XBOOTCLR#XA,res,cmd#XEV,evGOT_IP/WIFI_DISCONNECT)⏰ 时间同步与离线走时
🌦️ 天气功能 (可选,默认关)
X-QW-Api-Key请求头VERIFY_NONE💾 Flash 分区与存储布局 (2MB)
🧹 开机日志静音工程 (SYS_BOOT_LOG_DISABLE)
ef_log_debug/ef_log_info内#ifndef SYS_BOOT_LOG_DISABLEmfg_print宏重写为空操作#ifndef守卫🐛 排障笔记
展开:常见问题与解法
hosal_spi_send(中断路径不触发)SPI_Send_8bitsLV_COLOR_16_SWAP=10x00 / 0x60 / 0xC0 / 0xA00x21 INVON📜 License
All reactions