首页/新闻资讯/正文详情

RT-Thread 下 GD32F470 立创开发板 RGB LCD 触摸驱动实践:TLI 显示、SDRAM 帧缓冲与 FT5206 电容触摸全解析

发布时间:2026/9/24 6:58:09 来源:云帆数科 栏目:资讯中心
RT-Thread 下 GD32F470 立创开发板 RGB LCD 触摸驱动实践:TLI 显示、SDRAM 帧缓冲与 FT5206 电容触摸全解析
操作系统嵌入式物联网嵌入式OSRTOS【免费下载链接】rt-threadRT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/项目地址https://gitcode.com/gh_mirrors/rt/rt-thread点击查看免费下载导读本指南围绕 RT-Thread 仓库中bsp/gd32/arm/gd32470i-eval/board/ports/目录下的 RGB LCD 配套驱动展开该驱动为 GD32F470 立创开发板LCKFB配套的 800×480 RGB LCD 屏幕提供完整显示与触摸能力。读完本文你将掌握如何在 ENV/menuconfig 中一键开启 TLI、SDRAM、TOUCH、GPU 与绘图面板示例lcd_disp_config()背后 TLI 控制器、PLLSAI 时钟与 Layer0 的初始化细节FT5206 电容触摸芯片基于 GPIO 模拟 I2C 的轮询扫描机制以及如何通过draw_panel_test直接上手一个可运行的触摸绘图应用并解决刷新抖动、触摸连点等实战问题。驱动总览从 LCKFB 到 RT-Thread BSP该驱动最初由立创开发板团队LCKFB开发由维护者 godmial 移植到gd32470i-eval与gd32470z-lckfb两个 BSP见 驱动说明随后按 RT-Thread 代码规范重构drv_lcd.c、drv_touch.c头部 Change Log 均标注 2025-05-23 重构记录。board/ports/目录下共包含 8 个文件分工如下文件职责drv_lcd.cTLI 显示控制器初始化、GPIO 复用配置、绘图 API点/线/矩形/圆/三角形/字符/图片/按钮/开关drv_lcd.hLCD 分辨率、时序、帧缓冲地址、RGB565 颜色宏与 API 声明drv_touch.cFT5206 电容触摸驱动GPIO 模拟 I2C、寄存器读写、轮询扫描drv_touch.h触摸引脚定义、FT5206 寄存器地址、触摸数据结构draw_panel.c触摸绘图面板示例颜色选择/画笔粗细/橡皮擦/清屏font.hASCII 16×8 点阵字库asc2_1608SConscript依据BSP_USING_LCD / BSP_USING_TOUCH / BSP_USING_DRAW_PANEL_EXAMPLE宏条件编译README.md本文所依据的官方说明从构建脚本可以清晰看到驱动的模块化组织BSP_USING_LCD决定是否编译drv_lcd.cBSP_USING_TOUCH决定drv_touch.cBSP_USING_DRAW_PANEL_EXAMPLE决定draw_panel.c三者相互独立、可单独裁剪。在 ENV 中开启 LCD 相关功能驱动通过 Kconfig 菜单向用户暴露开关。在 BSP 根目录bsp/gd32/arm/gd32470i-eval打开 ENV 工具执行menuconfig按如下路径配置建议全部开启Hardware Drivers Config --- Board extended module Drivers --- Enable LCD --- - [*]Enable TLI - [*]Enable SDRAM - [*]Enable TOUCH - [*]Enable GPU - [*]Enable DRAW PANEL EXAMPLE对应配置项定义在 board/Kconfig 中BSP_USING_LCD总开关默认关闭BSP_USING_TLITLI 显示控制器默认开启且select RT_USING_LCDBSP_USING_SDRAM外部 SDRAM默认开启同时select RT_USING_SDRAM用于承载帧缓冲BSP_USING_TOUCH触摸默认关闭BSP_USING_GPUGPUIPA 图像处理加速器默认开启BSP_USING_DRAW_PANEL_EXAMPLE绘图面板示例默认关闭。配置完成后执行scons --targetmdk5或iar/默认 GCC 构建重新生成工程。注意BSP_USING_SDRAM在 Kconfig 中同时出现在On-chip Peripheral Drivers默认关闭和 LCD 子菜单默认开启两处两者语义相同均为开启外部 SDRAM 支持。硬件基础SDRAM 帧缓冲与显示通路RGB LCD 与 MCU 屏的最大区别在于屏幕没有显存控制器必须通过 RGB 并行接口持续不断地刷新每一帧像素。因此驱动把帧缓冲放置在外部 SDRAM 中由 TLI 外设按时序自动搬运。在 board.h 中定义了外部 SDRAM 的地址区间#define EXT_SDRAM_BEGIN (0xC0000000U) /* the begining address of external SDRAM */ #define EXT_SDRAM_END (EXT_SDRAM_BEGIN (32U * 1024 * 1024)) /* the end address of external SDRAM */drv_lcd.h 则将帧缓冲固定指向 SDRAM 起始地址#define LCD_WIDTH 800 #define LCD_HEIGHT 480 #define LCD_FB_BYTE_PER_PIXEL 1 ... #define LCD_FRAME_BUF_ADDR 0xC0000000 /* SDRAM address for LCD frame buffer */800×480 分辨率 RGB565每像素 2 字节共需约 800×480×2 768 KB 连续内存内部 SRAMGD32F470 仅 512 KB无法容纳这正是必须借助外部 SDRAM 的原因。同时由于 SDRAM 位于 EXMC 总线空间TLI 可以以 DMA 方式直接读取无需 CPU 逐像素搬运绘图时 CPU 只需写帧缓冲即可。编译器适配__CC_ARM与__GNUC__为避免sconsGCC 工具链编译失败驱动针对不同编译器声明了不同形式的帧缓冲见 drv_lcd.c#if defined(__CC_ARM) || defined(__ARMCC_VERSION) /* Keil MDK Compiler */ uint16_t ltdc_lcd_framebuf0[800][480] __attribute__((at(LCD_FRAME_BUF_ADDR))); #elif defined(__GNUC__) /* GCC Compiler (used by RT-Thread) */ uint16_t ltdc_lcd_framebuf0[10][10]; #endifKeil MDK__CC_ARM/__ARMCC_VERSION通过__attribute__((at(...)))将 800×480 数组绝对定位到 SDRAM 帧缓冲地址GCCRT-Thread 默认工具链仅声明一个 10×10 的哑数组以通过编译SDRAM 区域的实际分配由 GCC 链接脚本处理哑数组声明仅为满足符号引用。使用 GCC 构建时需保证链接脚本将外部 SDRAM 空间纳入可寻址内存映射若你换用其他工具链如 IAR也需确认帧缓冲符号的放置方式与硬件布局一致。TLI 显示控制器初始化时序、时钟与 Layer0lcd_disp_config()drv_lcd.c是 LCD 初始化的总入口调用流程为lcd_disp_en_config()配置 PD13 为推挽输出作为 DISP 使能脚lcd_disp_off()/lcd_disp_on()先关屏再开屏控制背光/电源时序tli_gpio_config()配置全部 RGB 信号与同步信号引脚为复用功能tli_config()配置 PLLSAI 时钟、TLI 时序、背景色与 Layer0tli_layer_enable(LAYER0)tli_reload_config(TLI_FRAME_BLANK_RELOAD_EN)tli_enable()使能图层并启动控制器ipa_config()使能 IPAGPU时钟并打开其中断。TLI 像素时钟的产生TLI 的像素时钟由 PLLSAI 生成drv_lcd.cif (ERROR rcu_pllsai_config(192, 2, 3)) { while (1); } rcu_tli_clock_div_config(RCU_PLLSAIR_DIV2);rcu_pllsai_config(192, 2, 3)中三个参数对应 PLLSAI 的倍频/分频系数PLLSAIR 输出经 DIV2 分频后作为 TLI 像素时钟。驱动中保留了被注释的rcu_pllsai_config(216, 2, 3)写法供不同刷新率需求时替换修改后必须确保tli_init_struct中的水平/垂直时序与之匹配否则会出现画面偏移或撕裂。水平与垂直同步时序时序参数定义在 drv_lcd.h/* Horizontal: HSW10, HBP150, Active800, HFP15 */ #define HORIZONTAL_SYNCHRONOUS_PULSE 10 #define HORIZONTAL_BACK_PORCH 150 #define ACTIVE_WIDTH 800 #define HORIZONTAL_FRONT_PORCH 15 /* Vertical: VSW10, VBP140, Active480, VFP40 */ #define VERTICAL_SYNCHRONOUS_PULSE 10 #define VERTICAL_BACK_PORCH 140 #define ACTIVE_HEIGHT 480 #define VERTICAL_FRONT_PORCH 40这些参数在tli_config()中被换算为 GD32 固件库要求的减 1格式并写入同步、后肩、有效区、总长寄存器drv_lcd.ctli_init_struct.synpsz_hpsz HORIZONTAL_SYNCHRONOUS_PULSE - 1; tli_init_struct.backpsz_hbpsz HORIZONTAL_SYNCHRONOUS_PULSE HORIZONTAL_BACK_PORCH - 1; tli_init_struct.activesz_hasz HORIZONTAL_SYNCHRONOUS_PULSE HORIZONTAL_BACK_PORCH ACTIVE_WIDTH - 1; tli_init_struct.totalsz_htsz ... HORIZONTAL_FRONT_PORCH - 1;同步极性同时配置为低有效TLI_HSYN_ACTLIVE_LOW、TLI_VSYN_ACTLIVE_LOW、TLI_DE_ACTLIVE_LOW并选择TLI_PIXEL_CLOCK_TLI作为像素时钟源。这些参数必须与屏幕规格书一致若更换为其他型号的 RGB 屏这是第一处需要修改的地方。Layer0 图层与帧缓冲绑定TLI 支持多图层混合驱动仅使用 Layer0drv_lcd.c窗口位置按HSWHBP、VSWVBP计算活动区起点与显示时序严格对齐像素格式LAYER_PPF_RGB565透明度layer_sa 255完全不透明混合因子LAYER_ACF1_SA/LAYER_ACF2_SA帧缓冲绑定layer_frame_bufaddr (uint32_t)ltdc_lcd_framebuf0即 SDRAM 起始地址行长与跨度layer_frame_line_length ACTIVE_WIDTH * 2 3RGB565 每行 1600 字节layer_frame_buf_stride_offset ACTIVE_WIDTH * 2总行数ACTIVE_HEIGHT抖动tli_dither_config(TLI_DITHER_ENABLE)开启颜色抖动以改善低位数色深下的条带现象。背景色被配置为白色backcolor_red/green/blue 0xFF与绘图面板清屏后的底色一致。TLI 信号引脚映射GPIO 复用tli_gpio_config()将 6 组 GPIO 的时钟使能后按 AF14多数 RGB 信号/ AF9PB0、PG10、PG12配置复用drv_lcd.c。关键引脚分配如下信号引脚复用HSYNCPC6AF14VSYNCPA4AF14PCLKPG7AF14DEPF10AF14R7PG6AF14G7PD3AF14B7PB9AF14全部输出配置为推挽、50MHz 速度、无上下拉。若所接屏幕的信号定义不同如 DE 极性相反需同步修改 GPIO 映射与 TLI 极性配置。DISP 背光控制lcd_disp_en_config()/lcd_disp_off()/lcd_disp_on()drv_lcd.c通过 PD13 控制屏幕的 DISP 使能信号初始化时先复位关再置位开保证上电时序安全。如果你的硬件将 DISP 接到其他引脚需同步修改这几处 GPIO 宏。绘图 API从像素到完整控件驱动在帧缓冲之上提供了一套完整的软件绘图接口全部直接写 SDRAM 帧缓冲由 TLI 自动刷新到屏幕CPU 不参与显示搬运API功能算法/说明tli_draw_point(x, y, color)单像素直接写framebuf0[0] LCD_WIDTH*y xtli_draw_line(sx, sy, ex, ey, color)直线Bresenham 算法tli_draw_rectangle(sx, sy, ex, ey, color, fill)矩形fill1填充否则只画四条边tli_draw_circle(xc, yc, color, r, fill)圆中点画圆算法8 对称点tli_draw_triangle(x0..x2, y0..y2, color, fill)三角形扫描线光栅化填充tli_point_enlarge(x, y, color, magnify)放大像素4 个矩形组成十字块最小 1tli_show_char(x, y, fc, bc, num, size, mode)ASCII 字符16×8 点阵支持放大与覆盖模式tli_show_string(x, y, fc, bc, size, p, mode)ASCII 字符串自动处理越界与非法字符tli_show_picture(x, y, w, h, pic[])图片RGB565 字节序高字节在前tli_show_button(x, y, w, h, radius, color)圆角按钮4 圆角 矩形拼接radius h/2tli_show_switch(x, y, w, h, on_c, off_c, sw)开关圆角底座 滑块指示开关状态颜色宏在 drv_lcd.h 中按 RGB565 格式定义例如RED0xF800、GREEN0x07E0、BLUE0x001F、WHITE0xFFFF、BLACK0x0000并额外提供了LGRAY面板背景浅灰等 GUI 常用色。注意由于代码格式审查原因本驱动未包含中文显示函数见 README.md 注意事项第 2 条。需要中文显示时可直接移植官方源码中的中文显示函数到本驱动中字体数据格式参考font.h中asc2_1608的 16×8 点阵组织方式。触摸驱动FT5206 与 GPIO 模拟 I2C屏幕配套的是 FT5206 电容触摸控制器通过 I2C 与 MCU 通信。驱动在 drv_touch.h 中定义了引脚与寄存器#define SCL_PORT GPIOB #define SCL_PIN GPIO_PIN_6 #define SDA_PORT GPIOB #define SDA_PIN GPIO_PIN_7 #define INT_PORT GPIOD #define INT_PIN GPIO_PIN_11 /* 触摸中断脚本驱动以轮询方式使用 */ #define RST_PORT GPIOD #define RST_PIN GPIO_PIN_12 /* 复位脚 */I2C 采用 GPIO 位操作软件模拟实现SCLPB6、SDAPB7CT_IIC_Init()将两根线配置为带上拉的推挽输出通过CT_IIC_Start/Stop/Send_Byte/Read_Byte/Wait_Ack/Ack/NAck完成完整 I2C 时序。关键 FT5206 寄存器drv_touch.h寄存器地址含义FT_DEVIDE_MODE0x00工作模式FT_REG_NUM_FINGER0x02触摸点数/触摸状态FT_TP1_REG ~ FT_TP5_REG0x03 / 0x09 / 0x0F / 0x15 / 0x1B5 个触摸点的坐标数据每点 4 字节FT_ID_G_THGROUP0x80触摸灵敏度阈值FT_ID_G_PERIODACTIVE0x88采样活跃周期FT_ID_G_LIB_VERSION0xA1固件版本号FT5206_Init()完成初始化 I2C → 写设备模式/中断模式寄存器 → 设置灵敏度THGROUP22、活跃周期PERIODACTIVE12→ 回读固件版本并打印CTP ID。每次上电串口终端都会输出类似CTP ID:xxxx的信息可用来确认触摸芯片通信正常。触摸扫描与状态管理FT5206_Scan(mode)以轮询方式工作drv_touch.c读FT_REG_NUM_FINGER得到本次触点个数触点有效时按FT5206_TPX_TBL[]依次读取各点 4 字节坐标数据解析 12 位 X/Y 坐标高 4 位在首字节低半字节写入全局触摸设备结构tp_dev_m_tp_dev类型含x[5]/y[5]/sta/xfac/yfac/xoff/yoff/touchtype字段返回1表示检测到触摸0表示无触摸当检测到坐标超出屏幕范围 ACTIVE_WIDTH/ACTIVE_HEIGHT时自动切换到备用触点或恢复上一状态防止误触点。状态标志位TP_PRES_DOWN(0x80)表示按下、TP_CATH_PRES(0x40)表示捕获到触点。letgo_scan()则用于阻塞等待手指离开指定矩形区域绘图面板用它实现按下按钮、松手后触发的交互语义。触摸自测命令驱动通过MSH_CMD_EXPORT(touch_test, touch test)drv_touch.c向 RT-Thread FinSH 控制台导出了touch_test命令。编译后进入msh输入msh / touch_test程序会进入无限循环轮询触摸每次检测到按下就在串口打印touch。这是一个快速验证触摸硬件通路是否正常的最小测试无需 LCD 参与。绘图面板示例draw_panel_testdraw_panel.c提供了一个完整的触摸绘图应用通过INIT_COMPONENT_EXPORT(draw_panel_test)draw_panel.c在系统组件初始化阶段自动启动。draw_panel_test()的执行逻辑lcd_disp_config()初始化显示通路FT5206_Init()初始化触摸tli_draw_rectangle(0, 0, 800, 480, WHITE, 1)清屏为白色在屏幕底部创建 4 个功能按钮各 120×70color左上点击切换画笔颜色颜色取自 14 色调色板color_buf[]GRAYBLUE/BLACK/BLUE/.../GRAY见 draw_panel.cpixel中下点击循环调整笔刷放大倍数范围 120PIXEL_SIZE_MAXeraser右二点击切换橡皮擦模式用白色擦除clear右下点击整屏清为白色主循环轮询FT5206_Scan(0)触点落在按钮区域时调用letgo_scan()等待松手再执行动作落在绘图区时调用tli_point_enlarge()以当前颜色与笔刷大小绘制橡皮擦模式则画白色。各按钮的矩形命中检测逻辑为if (tp_dev.x[0] button_color.x tp_dev.x[0] (button_color.x button_color.w)) { if (tp_dev.y[0] button_color.y tp_dev.y[0] (button_color.y button_color.h)) { ... } }编译烧录后屏幕会直接进入可交互的触摸绘图面板用手指即可书写、换色、调粗细、擦除与清屏是验证显示 触摸 SDRAM整条链路最直观的演示。实战问题排查根据 README.md 注意事项以下两个问题在高频使用中最常见1. 刷新抖动与触摸连点若屏幕出现刷新抖动、触摸屏出现连点现象可将 libraries 目录下 GD32F4xx 固件库中的system_gd32f4xx.c的系统时钟宏修改为 240 MHz#define __SYSTEM_CLOCK_240M_PLL_25M_HXTAL (uint32_t)(240000000)然后重新编译即可。该问题通常源于 PLL 配置与 SDRAM/TLI 时序的匹配不佳系统时钟偏低时TLI 刷新与 SDRAM 读写带宽的竞争加剧表现为画面抖动触摸扫描节拍异常则表现为连点。将主频提升到 GD32F470 标称的 240 MHz 后总线带宽与时序裕量得到改善。修改后需确认board目录的时钟初始化代码同样按 240 MHz 配置gd32470i-eval/board/board.c并同步核对drv_lcd.c中 PLLSAI 的像素时钟分频。2. 中文显示缺失由于代码格式审查原因本驱动未包含中文显示函数。若项目需要中文直接移植官方源码中的中文显示函数通常基于 GB2312 点阵字库即可现有tli_show_char/string的绘图框架可复用无需改动 TLI 与帧缓冲逻辑。源码路径速查内容路径驱动官方说明board/ports/README.mdLCD 驱动实现board/ports/drv_lcd.cLCD 驱动头文件board/ports/drv_lcd.h触摸驱动实现board/ports/drv_touch.c触摸驱动头文件board/ports/drv_touch.h绘图面板示例board/ports/draw_panel.c条件编译脚本board/ports/SConscriptKconfig 菜单board/KconfigSDRAM 内存布局board/board.h评估板 BSP 说明gd32470i-eval/README.md总结该驱动为 GD32F470 立创开发板提供了完整的 RGB LCD 显示与触摸解决方案显示侧由 TLI 控制器配合外部 SDRAM 帧缓冲完成 800×480 画面刷新触摸侧由 FT5206 芯片通过 GPIO 模拟 I2C 提供 5 点电容触摸两者经draw_panel_test示例闭环成一个可直接运行的绘图应用。若需将该方案迁移到其他 GD32F4xx 评估板或屏幕重点核对三处屏幕时序参数与极性drv_lcd.h、TLI 引脚复用映射drv_lcd.c的tli_gpio_config、以及触摸引脚与寄存器定义drv_touch.h。赞分享操作系统嵌入式物联网嵌入式OSRTOS【免费下载链接】rt-threadRT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/项目地址https://gitcode.com/gh_mirrors/rt/rt-thread点击查看免费下载相关推荐MicroPython pyboard LCD 触摸屏扩展板LCD Touch-Sensor Skin实战指南焊接、显示驱动与 MPR121 触摸读取MicroPython pyboard LCD 触摸屏扩展板LCD Touch Sensor Skin实战指南焊接、显示驱动与 MPR121 触摸读取 导嵌入式语言运行时编程语言解释器编译器物联网系统编程RT-Thread GD32470Z-LCKFB 梁山派 BSP 开发指南从快速上手到 RGB LCD 触摸屏扩展RT Thread GD32470Z LCKFB 梁山派 BSP 开发指南从快速上手到 RGB LCD 触摸屏扩展 本指南以 RT Thread 仓库中的 g操作系统嵌入式物联网嵌入式OSRTOSJohnny-Five 触摸板实战使用 TouchpadQTOUCH / AT42QT1070驱动 Grove QTouch 电容触摸传感器Johnny Five 触摸板实战使用 TouchpadQTOUCH / AT42QT1070驱动 Grove QTouch 电容触摸传感器 导读 本文基IoT机器人嵌入式创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

代理IP团队化管理与选型实战:从API批量配IP到子账户权限
代理IP团队化管理与选型实战:从API批量配IP到子账户权限

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 6:58:09

用Obsidian搭建本地优先的第二大脑:从目录到同步的全流程实战
用Obsidian搭建本地优先的第二大脑:从目录到同步的全流程实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 6:58:03

OpenHarmony开机自启动与Launcher替换深度解析
OpenHarmony开机自启动与Launcher替换深度解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 6:57:57

野火霸天虎 STM32F407初步认识
野火霸天虎 STM32F407初步认识

刚开始学习单片机时,我使用的是野火霸天虎 STM32F407 开发板,做的第一个实验是通过寄存器操作点亮 LED。 代码并不长,但真正动手后,我发现自己对很多概念还没有理解清楚:芯片和 CPU 是什么关系?往一个地址… · 2026/9/24 7:46:35

ESP32脑电波控制空调:从BCI信号采集到红外发射的完整实战
ESP32脑电波控制空调:从BCI信号采集到红外发射的完整实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 7:46:35

HarmonyOS扫码直达:系统扫、应用落的三步接入实战
HarmonyOS扫码直达:系统扫、应用落的三步接入实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 7:46:29

PHP容器化生产实践:从镜像构建到FPM调优全指南
PHP容器化生产实践:从镜像构建到FPM调优全指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 7:46:23

ESP32+TEF6686打造高性能DSP收音机:从原理到实践
ESP32+TEF6686打造高性能DSP收音机:从原理到实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 7:46:16

OpenHarmony设备上Flutter内存泄漏与GPU掉帧排查实战指南
OpenHarmony设备上Flutter内存泄漏与GPU掉帧排查实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 7:46:10

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码