STM32H750驱动7寸电容屏:SPI DMA与GT911触摸实战指南
1. 项目概述一块7英寸电容触摸屏的深度探索最近在折腾一个需要人机交互的项目选型时一眼看中了市面上很常见的那种7英寸电容触摸LCD屏。这类屏幕通常指的是那种集成了LCD显示面板和电容式触摸控制器常见如GT811或GT911的一体化模块。它不像早年电阻屏那样需要用力按压手指轻轻一划就能操作用户体验直接上了一个台阶。无论是做智能家居的中控面板、工业设备的操作终端还是自己DIY个便携式游戏机、数据监控仪表盘这块屏都是非常理想的选择。我这次的目标很明确就是要吃透这块屏从硬件接口、驱动原理到软件整合走通整个流程。网上资料虽然多但往往比较零散有的只讲接线有的只贴代码对于“为什么这么接”、“驱动时序到底怎么调”、“遇到花屏、触摸不准怎么办”这些实际踩坑点却少有系统性的梳理。特别是结合STM32H750这类高性能MCU利用其DMA来驱动SPI接口的LCD能极大解放CPU但配置上也有不少门道。所以我想结合自己的实践把这块7寸电容屏的驱动与应用掰开揉碎了讲清楚让你无论是新手入门还是老手优化都能找到可参考的干货。2. 核心硬件解析与接口定义2.1 屏幕模组构成与关键芯片我们常说的“7寸电容触摸LCD”通常是一个将以下核心部件封装在一起的模组LCD面板负责图像显示常见分辨率为800x480WVGA或1024x600WSVGA接口多为RGB并行接口或SPI接口。我们讨论的焦点更偏向于SPI驱动的款式因为它接线简单更适合MCU项目。电容触摸控制器负责处理触摸信号集成在屏幕排线或PCB上。GT811和GT911是两款非常流行的国产电容触摸IC它们通过I2C接口与主控MCU通信上报触摸点的坐标、面积和压力支持多点触控。背光驱动电路为LCD提供光源通常需要单独的PWM信号进行亮度调节。拿到一块屏首先得看它的接口定义。这类屏的排线FPC上通常会引出以下几组关键信号LCD显示部分SPI接口SCK时钟、MOSI主出从入即MCU发送数据给屏、MISO主入从出部分屏可能不需要、CS片选低电平有效、DC数据/命令选择决定发送的是命令还是显存数据、RST复位用于硬件初始化。电源VCC3.3V或5V务必确认、GND。背光BL背光使能高电平点亮或BLK背光阴极接PWM调光。电容触摸部分I2C接口SCL时钟、SDA数据。这是触摸芯片与MCU通信的通道。中断引脚INT中断输出触摸发生时触摸芯片会通过此引脚向MCU发出中断信号告知有触摸事件需要处理。这个引脚非常关键能实现高效的事件驱动。复位RST触摸芯片复位可选通常上电复位即可。注意不同厂家、不同批次的屏幕引脚定义可能有细微差别。最保险的方法是找到该屏幕对应的数据手册Datasheet。如果找不到可以尝试用万用表测量VCC和GND通常对应排线最宽或接地的引脚背光引脚两端通常有较大的压差如3.3V和0VSPI的CS、DC在初始化阶段会有电平变化。2.2 触摸芯片GT811与GT911浅析虽然都出自同一家公司但GT911是GT811的升级版两者在软件驱动上略有不同主要体现在初始化配置和读取数据的命令上。GT811较早期的型号支持最多5点触控。其I2C设备地址通常是固定的如0xBA/0xBB。初始化相对简单通常只需要发送软复位命令即可。GT911目前更主流支持最多10点触控性能更稳定。它的I2C设备地址可以通过一个配置引脚ADDR来选择0x28或0x29。GT911需要一个启动配置过程MCU需要先通过I2C向GT911的特定寄存器写入配置参数包括分辨率、中断模式等然后发送软复位命令使其生效。这个配置数据通常由屏厂提供是一个二进制数组需要我们在代码里定义。实操心得很多触摸不灵、坐标错乱的问题根源就在于GT911的配置没有正确加载。务必确认你使用的配置数组与你的屏幕分辨率如800x480严格匹配。你可以用逻辑分析仪或I2C工具抓取一下初始化阶段的通信数据与数据手册对比这是排查问题的利器。3. 基于STM32H750的SPI LCD驱动设计3.1 为什么选择DMA驱动SPI LCD对于800x480这种分辨率的屏幕一帧图像的数据量是800 * 480 * 2RGB565格式≈ 768KB。如果使用CPU通过SPI一个字节一个字节地发送会长时间霸占CPU导致系统无法响应其他任务如触摸检测、业务逻辑。STM32H750的DMA直接存储器访问控制器可以在不占用CPU的情况下自动将内存中的图像数据搬运到SPI的数据寄存器中发送出去。我们只需要配置好DMA和SPI启动传输然后CPU就可以去处理别的事情了等DMA传输完成产生一个中断我们再更新下一帧数据或进行其他操作。这极大地提高了系统效率和实时性。3.2 SPI与DMA的配置要点这里以STM32H750的SPI1为例搭配DMA1的Stream3发送进行说明。我们使用CubeMX进行图形化配置但理解背后的寄存器操作同样重要。SPI配置模式全双工主模式Full-Duplex Master。数据大小8位或16位。为了最大化传输效率通常使用16位数据格式这样一次可以发送两个像素点RGB565格式下一个像素就是16位。但需要确认你的LCD控制器是否支持16位SPI数据格式。如果不支持则需设置为8位。波特率预分频器这是速度的关键。STM32H750的SPI时钟最高可达系统时钟的一半如200MHz系统下可达100MHz。但受限于LCD控制器的最大SPI时钟频率通常几十MHz以及PCB布线带来的信号完整性限制需要保守设置。初期调试建议先从低速开始如10MHz以下确保通信稳定后再逐步提高。时钟极性与相位CPOL/CPHA必须严格按照LCD控制器的要求设置。通常模式0CPOL0 CPHA0或模式3CPOL1 CPHA1比较常见。这个参数配错会导致通信完全失败屏幕无任何显示。NSS信号片选CS建议使用软件控制Software NSS management即用普通的GPIO口来模拟CS片选信号这样更灵活。硬件NSS在某些连续传输场景下可能有限制。DMA配置方向存储器到外设Memory To Peripheral。数据宽度与SPI设置保持一致如半字即16位。增量模式外设地址固定存储器地址递增。这样DMA会自动从我们指定的显存数组起始地址开始依次取出数据发送。循环模式通常禁用。我们传输完一帧或一部分数据后由程序重新配置下一次传输。中断使能“传输完成中断”TC这样在一帧数据发送完毕后DMA会触发中断我们在中断服务函数里可以进行帧同步、标记帧缓冲区可更新等操作。一个典型的驱动流程伪代码// 1. 准备显存 FrameBuffer[480][800] (RGB565格式) // 2. 填充FrameBuffer例如画一个矩形显示文字等 // 3. 设置DMA源地址 FrameBuffer 传输数量 800*480 (像素数若16位传输则数量减半) // 4. 拉低LCD_CS片选拉高LCD_DC表示发送数据 // 5. 使能SPI Tx DMA请求启动DMA传输 // 6. DMA传输完成中断中拉高LCD_CS标记“帧传输结束”准备下一帧3.3 常见SPI DMA驱动问题与排查问题1屏幕花屏、条纹、显示错乱可能原因ASPI时钟速度过快。过高的时钟在长排线或布线不佳的情况下会产生信号振铃、边沿畸变导致数据出错。解决方案降低SPI波特率分频如从PCLK/4降到PCLK/16。用示波器测量SCK和MOSI波形看上升/下降沿是否干净。可能原因BDMA传输过程中被中断打断。如果DMA正在搬运数据此时一个高优先级中断打断了CPU而该中断服务函数里又操作了SPI或相关的GPIO如DC可能导致时序混乱。解决方案确保DMA传输关键阶段从拉低CS到拉高CS之间的代码不被中断。可以临时提升此部分代码的临界区保护或者检查中断优先级。可能原因C显存数据格式与LCD控制器期望的不符。例如控制器期望先发送RGB高位字节而你发送的是低位字节。解决方案查阅LCD控制器的数据手册确认RGB565的字节序Big-Endian or Little-Endian。STM32是小端模式可能需要调整数据在内存中的存储顺序。可以尝试发送固定的测试色块如纯红0xF800来验证。可能原因DDMA传输大小设置错误。如果设置为16位传输但传输数量NDTR仍设置为像素总数会导致实际发送的数据量翻倍从而错位。解决方案若SPI数据宽度为16位则DMA传输数量应设置为像素总数 * 2字节数 / 216位2字节 像素总数。仔细核对计算。问题2DMA传输不启动或只传输一部分可能原因ADMA流Stream或通道Channel未正确映射。每个外设如SPI1_TX只能映射到特定的DMA流和通道。解决方案核对STM32H750参考手册的DMA请求映射表确保CubeMX或代码中的映射关系正确。可能原因BDMA或SPI使能顺序有误。正确的顺序通常是先配置DMA再使能SPI的DMA发送请求SPI_I2S_DMACmd(SPI1, SPI_I2S_DMAReq_Tx, ENABLE)最后再启动DMA传输DMA_Cmd(DMA1_Stream3, ENABLE)。可能原因C存储器或外设地址未正确设置。DMA的存储器地址应该是显存数组的起始地址如FrameBuffer[0][0]外设地址应该是SPI数据寄存器的地址如(uint32_t)SPI1-DR。排查技巧简化测试先不用DMA用CPU轮询方式发送一个纯色背景到屏幕确认SPI底层通信和LCD初始化序列是正确的。使用逻辑分析仪这是调试SPI和I2C通信的终极武器。连接SCK MOSI CS DC等引脚可以清晰地看到发送的每一个命令和数据与预期序列对比任何错误都无所遁形。分段调试将一帧数据的DMA传输改为先传输一小块区域如屏幕顶部10行成功后再扩大范围。4. 电容触摸驱动与坐标校准4.1 I2C通信与中断驱动触摸功能的实现相对独立。我们使用I2C与GT911通信并利用其INT中断引脚实现事件驱动。硬件连接将屏幕的I2C_SCL、I2C_SDA连接到STM32的任意一组I2C接口如I2C1INT引脚连接到一个具有外部中断功能的GPIO上并配置为上拉输入因为INT通常是开漏输出低电平有效。I2C初始化配置I2C为标准模式100kHz或快速模式400kHz。初始化后先尝试读取GT911的芯片ID寄存器如0x8140-0x8143若能正确读取到“39 31 31 00”对应ASCII “911”说明I2C通信基本正常。GT911配置对于GT911将厂家提供的配置数组通常是一个uint8_t数组通过I2C写入到其配置寄存器区域起始地址0x8047然后向命令寄存器0x8040写入0x00进行软复位使其加载新配置。中断服务函数配置INT引脚对应的外部中断下降沿或低电平触发。在中断服务函数中不要进行复杂的I2C读取操作仅设置一个标志位如touch_event_flag 1。主循环查询在主循环或一个专用的触摸任务中检测到touch_event_flag被置位后才通过I2C去读取GT911的触摸状态寄存器0x814E和坐标数据寄存器0x8150等。读取后需要向状态寄存器写0来清除中断。4.2 坐标校准与滤波从GT911读出的坐标是屏幕的原始坐标可能与LCD的显示坐标存在线性偏移、缩放甚至旋转。因此校准是必须的。两点校准法最常用在LCD上依次显示两个校准点如(5050)和(750430)。提示用户精确点击这两个点。记录下用户点击时GT911返回的两个原始坐标(X1_raw, Y1_raw)和(X2_raw, Y2_raw)。根据两对坐标计算缩放系数和偏移量scale_X (750 - 50) / (X2_raw - X1_raw)scale_Y (430 - 50) / (Y2_raw - Y1_raw)offset_X 50 - X1_raw * scale_Xoffset_Y 50 - Y1_raw * scale_Y对于后续任何触摸原始坐标(X_raw, Y_raw)其对应的LCD显示坐标(X_disp, Y_disp)为X_disp X_raw * scale_X offset_XY_disp Y_raw * scale_Y offset_Y实操心得软件滤波原始触摸数据可能会有抖动。可以采取“均值滤波”取最近几次采样的平均值或“中值滤波”来平滑坐标。更简单有效的方法是设置一个“去抖阈值”只有当连续2-3次读取的坐标都在一个很小范围内变化时才认为是一次有效的触摸。校准数据存储计算出的scale_X, scale_Y, offset_X, offset_Y应该存储在STM32的Flash或EEPROM中下次上电后直接读取使用无需每次校准。触摸区域判断校准后还需要判断坐标是否在有效的按钮或控件区域内这属于GUI应用的范畴了。5. 系统整合与性能优化5.1 显示与触摸的协同一个基本的交互系统可以这样架构底层驱动层包含SPI LCD驱动含DMA、GT911 I2C驱动、触摸坐标校准算法。中间件层可以引入一个轻量级的GUI库如LVGL、emWin或TouchGFX。这些库提供了按钮、标签、滑块等控件并负责管理触摸事件的分发将底层读取的坐标转化为哪个控件被按下。应用层实现具体的业务逻辑如绘制界面、更新数据、响应触摸事件。工作流程主程序初始化所有硬件SPI DMA I2C GPIO 定时器等和软件模块GUI库 文件系统等。在一个定时器中断或低优先级任务中周期性地检查“帧缓冲区更新标志”。如果需要更新比如界面有变化则启动DMA传输将新的帧数据发送到LCD。触摸中断发生设置标志位。在主循环或一个专有的触摸任务中检查触摸标志读取坐标进行校准和滤波然后将触摸事件按下、移动、释放提交给GUI库。GUI库处理触摸事件更新控件状态并标记需要重绘的区域从而触发步骤2中的帧缓冲区更新。5.2 性能优化技巧双缓冲与局部刷新双缓冲准备两个帧缓冲区FrameBuffer A和B。GUI库在后台缓冲区B上绘制下一帧画面同时DMA正在从前景缓冲区A读取数据发送到屏幕。当B绘制完成交换A和B的指针。这能有效避免屏幕撕裂。局部刷新GUI库通常支持只重绘界面中发生变化的区域脏矩形而不是整个屏幕。我们只需要更新帧缓冲区中对应的这一小块区域然后只传输这一小块区域的数据到LCD。这能大幅减少数据传输量提高刷新率。STM32的SPI DMA支持设置传输数据的起始地址和长度完美适配局部刷新。利用STM32H750的硬件特性ART Accelerator™确保程序在TCM或Flash中运行时能获得最高的执行效率这对GUI的渲染计算很有帮助。硬件图形加速如果使用的LCD控制器支持并口如RGB888STM32H750的Chrom-ART AcceleratorDMA2D可以极大地加速图形填充、混合、复制等操作。但对于SPI接口的屏DMA2D的优势无法直接发挥因为最终输出瓶颈在SPI速率上。优化SPI时钟在保证信号质量的前提下尽可能提高SPI时钟频率。计算一下刷新率刷新率 SPI时钟频率 / (每像素位数 * 屏幕总像素数 * 开销系数)。开销系数包括行/场消隐、命令传输时间等。通过优化将SPI时钟推到屏控芯片的极限是提高流畅度的最直接手段。触摸响应优化确保触摸中断的优先级设置合理既不能太高影响显示DMA也不能太低导致响应延迟。读取I2C坐标数据的操作不宜放在中断中而应放在主循环或任务中通过标志位触发。6. 进阶应用信号波形与FFT频谱显示结合网络热词“基于stm32的lcd信号波形和fft频谱显示”这正是这块7寸屏一个非常典型的应用场景——做一个简易的示波器或频谱分析仪界面。6.1 波形显示实现数据采集使用STM32H750的ADC可能配合DMA以固定采样率采集外部模拟信号存入一个环形缓冲区。坐标映射将ADC的采样值如0-4095映射到帧缓冲区的Y坐标如0-479像素。将采样点序号映射到X坐标。绘图算法简单点绘将每个采样点画成一个像素点。速度快但波形可能不连续。线段连接将相邻的采样点用直线连接起来。这是最常用的方式能形成连续的波形。可以使用Bresenham画线算法进行优化。双缓冲绘图在一个离屏缓冲区即另一个帧缓冲区或内存中的画布上绘制完整的波形图包括网格、坐标轴、刻度等静态元素和动态波形线。绘制完成后一次性交换或拷贝到显示帧缓冲区。这能避免绘图过程中的屏幕闪烁。6.2 FFT频谱显示实现FFT计算从ADC采样缓冲区中取出一段数据如1024点应用窗函数如汉宁窗后调用STM32H750的CMSIS-DSP库中的FFT函数如arm_cfft_f32进行快速傅里叶变换。H750的硬件FPU和强大的算力使得实时FFT成为可能。频谱计算FFT输出的是复数需要计算每个频率点的幅值magnitude sqrt(re*re im*im)。通常我们关心的是幅度谱。显示处理对数坐标声音等信号的频谱通常用对数坐标dB显示更符合人耳感知。计算dB 20 * log10(magnitude)。坐标映射将频率点0 到 采样率/2映射到屏幕X轴将幅值dB映射到屏幕Y轴。柱状图显示每个频率点或频率区间用一条垂直的线段柱来表示其幅值大小形成经典的频谱柱状图。性能考量1024点的浮点FFT对H750来说压力不大。关键在于优化整个流水线ADC DMA采集 - 数据搬运到FFT输入缓冲区 - 执行FFT和幅值计算 - 映射坐标并绘制频谱图 - 通过SPI DMA刷新屏幕局部区域。合理使用双缓冲和局部刷新可以保证界面的实时性和流畅性。界面设计建议可以将屏幕分为上下两个区域上半部分显示时域波形下半部分显示频域频谱。顶部可以留出空间显示参数如采样率、电压量程、触发模式等并通过触摸按钮进行交互控制。这正是7寸电容触摸屏大显身手的地方你可以直接在上面滑动调节时基、电压档位点击按钮切换显示模式完全取代传统的物理旋钮和按键。驱动一块7寸电容屏从点亮到实现流畅的交互和动态显示是一个系统工程会涉及到单片机外设、总线协议、实时系统、图形算法等多个层面的知识。过程中最折磨人的往往不是代码怎么写而是硬件时序不对、信号质量差带来的各种玄学问题。我的经验是工具要备好逻辑分析仪、示波器思路要清晰先确保最小系统能工作再一步步叠加功能文档要常看芯片数据手册、参考手册。当屏幕上终于稳定地显示出你想要的图形手指滑动也能精准响应时那种成就感就是折腾硬件最大的乐趣所在。

相关新闻

如何突破声码器断音瓶颈:NSF-HIFIGAN架构革新与谐波正弦优化

如何突破声码器断音瓶颈:NSF-HIFIGAN架构革新与谐波正弦优化

如何突破声码器断音瓶颈:NSF-HIFIGAN架构革新与谐波正弦优化 【免费下载链接】so-vits-svc SoftVC VITS Singing Voice Conversion 项目地址: https://gitcode.com/gh_mirrors/so/so-vits-svc 在AI语音合成领域,声码器断音问题是长期困扰技术决策…

2026/10/17 13:51:51 阅读更多 →
RAG技术选型:FastGPT、Dify与RAGFlow对比与实践

RAG技术选型:FastGPT、Dify与RAGFlow对比与实践

1. 项目概述:RAG技术选型的核心挑战去年参与企业知识库升级项目时,我曾在FastGPT、Dify和RAGFlow三个平台间反复权衡。当时技术团队争论不休:有人坚持开箱即用的Dify,有人推崇高度灵活的RAGFlow,而我则被FastGPT的响应…

2026/10/17 8:12:30 阅读更多 →
10.1英寸HDMI屏幕选型、硬件拆解与嵌入式系统集成实战

10.1英寸HDMI屏幕选型、硬件拆解与嵌入式系统集成实战

1. 项目缘起:为什么选择一块10.1英寸的HDMI屏幕?最近在折腾一个桌面级的嵌入式项目,需要一个显示效果好、接口通用、尺寸合适的屏幕。市面上各种屏幕琳琅满目,从SPI、8080并口到MIPI、LVDS,看得人眼花缭乱。最终&#…

2026/10/19 5:01:22 阅读更多 →

最新新闻

多跳WSNs中抵御窃听与硬件噪声的物理层安全路径选择

多跳WSNs中抵御窃听与硬件噪声的物理层安全路径选择

做无线传感器网络仿真的朋友应该都有这种感觉:协议栈没调通的时候,最愁的是数据传不出去;好不容易把网络调通、数据能传了,下一个更要命的问题就来了——传出去的数据到底安不安全,尤其当信道里潜伏着窃听者&#xff0…

2026/10/19 5:12:13 阅读更多 →
鸿蒙自研RcList列表组件:全局配置与状态管理架构详解

鸿蒙自研RcList列表组件:全局配置与状态管理架构详解

1. 为什么我花了半年时间自研一套 List 组件先说结论:官方列表组件在复杂业务场景下,配置管理与样式复用的成本会随着页面数量线性膨胀,最终变成一个没人敢动的巨型状态集合。我接手某跨平台系统的核心列表页时,页面数量接近 40 个…

2026/10/19 5:12:13 阅读更多 →
开源代码评审工具实战:从部署到团队落地的完整指南

开源代码评审工具实战:从部署到团队落地的完整指南

代码评审这件事,我做了快十年,从最早用邮件发diff给人肉挑错,到后来上Gerrit强制review,再到现在团队里重度依赖自动化评审辅助工具。说实话,真正把“代码评审”从流程包袱变成开发效率助推器的转折点,就是…

2026/10/19 5:12:13 阅读更多 →
代码评审不是找茬:从被骂惨到整改,编程规范才是代码可维护的底线

代码评审不是找茬:从被骂惨到整改,编程规范才是代码可维护的底线

前天晚上十一点,我收到一条消息。不是女朋友发的,是领导把代码评审链接甩进项目群,配了一句:“你自己看看你提交了什么,别人怎么看?”点开链接,我的提交下面挂了二十多条评论。最狠的一条不是批…

2026/10/19 5:12:13 阅读更多 →
LDA线性判别分析:分类聚团式降维,你该了解的PCA替代方案

LDA线性判别分析:分类聚团式降维,你该了解的PCA替代方案

1. 为什么说到降维,大家总是先想起PCA而忘了LDA1.1 我那次用PCA做分类预处理栽的跟头先说一个我自己的经历。某次做一个图像分类的小项目,特征工程做完之后特征维度到了好几百,模型训练慢不说,过拟合也明显。当时脑子里的第一反应…

2026/10/19 5:12:13 阅读更多 →
Xcode调试外部可执行程序:LLDB附加与符号断点实战

Xcode调试外部可执行程序:LLDB附加与符号断点实战

1. 为什么“调试可执行程序”这件事值得单独拎出来讲很多人第一次接触 Xcode 调试,都是从“点一下 Run,断点停住,看变量”开始的。这套流程在普通 App 开发里确实够用,但一旦你面对的不是一个标准的 iOS App 工程,而是…

2026/10/19 5:11:13 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

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

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/18 12:16:16 阅读更多 →