stm32GPIO复用功能与重映射
本文系统讲解 STM32 的 AFIO 复用功能与重映射机制覆盖术语、数据手册 8.3/8.4 节解读、寄存器位域详解及六步配置流程。目录1. 术语解释2.参考数据手册8.3节复用功能I/O和调试配置8.3 开篇总览8.3.1 把 OSC32_IN/OSC32_OUT 作为 GPIO 端口 PC14/PC158.3.2 把 OSC_IN/OSC_OUT 引脚作为 GPIO 端口 PD0/PD18.3.3 CAN1 复用功能重映射8.3.4 CAN2 复用功能重映射仅互联型产品8.3.5 JTAG/SWD 复用功能重映射8.3.6 ADC 复用功能重映射8.3.7 定时器复用功能重映射8.3.8 USART 复用功能重映射8.3.9 I²C1 复用功能重映射8.3.10 SPI1 复用功能重映射8.3.11 SPI3 复用功能重映射仅互联型8.3.12 以太网复用功能重映射仅互联型STM32F1073. 参考数据手册8.4节AFIO寄存器描述8.4.1 事件控制寄存器 (AFIO_EVCR)8.4.2 复用重映射和调试I/O配置寄存器 (AFIO_MAPR)8.4.3 ~ 8.4.6 外部中断配置寄存器 (AFIO_EXTICR1~4)4. 使用步骤 —— 手打代码4.1 骨架步骤 1步骤 2步骤 3释放调试引脚如目标为 PA15 / PB3 / PB4步骤 4配置 GPIO 复用模式步骤 5执行重映射 / 选择外部中断引脚步骤 6初始化外设 / 中断1. 术语解释在进入正文之前请务必先理解下面这些词的意思否则后面的内容你会越看越懵。术语通俗解释重点GPIO芯片的引脚可以当输入或输出用普通数字IO电平由寄存器控制AFIO引脚功能“调度中心”负责换引脚和选外部中断引脚用之前必须先开 AFIO 时钟否则配置无效复用功能AF让引脚去干外设的活比如串口发送、SPI时钟信号直接连到外设不经过 GPIO 数据寄存器重映射Remap把外设的引脚从默认位置“搬”到备用位置查AFIO_MAPR寄存器每个外设有对应开关位调试端口JTAG/SWD默认占用 PA13、PA14、PA15、PB3、PB4 用于调试想释放这些脚设置SWJ_CFG010只保留 SWD千万别设 100寄存器芯片内部的控制开关每个位管一件事所有配置最终都是读写寄存器外部中断线EXTI Line16 根中断线每根线同一时刻只能接一个引脚选引脚查AFIO_EXTICR每 4 位选一个端口2.参考数据手册8.3节复用功能I/O和调试配置8.3节就是一张功能迁移表它告诉你哪些外设USART、SPI、I2C、CAN、TIM、ADC、ETH可以换脚以及可以换到哪一组新引脚上。你不需要背下每个外设的映射组合但你需要知道当你的默认引脚被占用时可以来这里查表看看有没有替代方案。8.3 开篇总览“为了优化64脚或100脚封装的外设数目可以把一些复用功能重新映射到其他引脚上。设置复用重映射和调试I/O配置寄存器(AFIO_MAPR)实现引脚的重新映射。这时复用功能就不再映射到它们的原始分配上了。”解释芯片设计者知道很多引脚不够用或者布线不方便。所以他们在硬件上留了后门——允许你把某些外设的默认引脚换成另一组空闲引脚。怎么换就是通过设置AFIO_MAPR这个寄存器。一旦换了原来的默认引脚就不再承担这个外设的功能了。8.3.1 把 OSC32_IN/OSC32_OUT 作为 GPIO 端口 PC14/PC15“当LSE振荡器关闭时LSE振荡器引脚OSC32_IN/OSC32_OUT可以分别用做GPIO的PC14/PC15LSE功能始终优先于通用I/O口的功能。”解释PC14和PC15这两个引脚默认是接外部32.768kHz晶振给RTC用的的。如果你不用外部晶振改用内部LSI你就可以把这两个脚解放出来当普通IO口用。手册后面备注当1.8V核心电压关闭进入待机模式或者后备区域由VBAT供电而VDD断电时PC14/PC15不能当GPIO用。另外这两个脚输出能力很弱最大驱动电流只有3mA不能用来推LED速度也必须限制在2MHz以下。8.3.2 把 OSC_IN/OSC_OUT 引脚作为 GPIO 端口 PD0/PD1“外部振荡器引脚OSC_IN/OSC_OUT可以用做GPIO的PD0/PD1通过设置复用重映射和调试I/O配置寄存器(AFIO_MAPR)实现。这个重映射只适用于36、48和64脚的封装100脚和144脚的封装上有单独的PD0和PD1的引脚不必重映射”解释PD0和PD1默认是接外部高速晶振HSE的。如果你用内部RC振荡器HSI不需要外部晶振那么你就可以把这两个脚当普通IO口。但注意大封装100脚以上本身就自带PD0/PD1不需要重映射直接就能用。只有小封装才需要通过设置AFIO_MAPR来启用。手册后面备注外部中断功能不会被重映射也就是说在36/48/64脚封装上你无法用PD0/PD1产生外部中断。8.3.3 CAN1 复用功能重映射CAN信号可以被映射到端口A、端口B或端口D上如下表所示。…CAN_REMAP[1:0]“00”CAN1_RX/PA11, CAN1_TX/PA12“10”CAN1_RX/PB8, CAN1_TX/PB9“11”CAN1_RX/PD0, CAN1_TX/PD1。解释CAN1这个外设默认在PA11和PA12上。如果你不想用这两个脚可以改成PB8/PB9或者PD0/PD1。通过设置AFIO_MAPR寄存器的位[14:13]即CAN_REMAP来选择。注意重映射到PD0/PD1只适用于100脚和144脚的大封装因为只有这些封装才有独立的PD0/PD1引脚不会被当作晶振脚。8.3.4 CAN2 复用功能重映射仅互联型产品在互联型产品中还有CAN2接口它的外部信号可以按下表重映射CAN2_REMAP“0” - CAN2_RX/PB12, CAN2_TX/PB13CAN2_REMAP“1” - CAN2_RX/PB5, CAN2_TX/PB6。解释只有STM32F105/107互联型才有CAN2。默认在PB12/PB13也可以通过设置重映射位把它们搬到PB5/PB6去。8.3.5 JTAG/SWD 复用功能重映射为了在调试期间可以使用更多GPIOs通过设置复用重映射和调试I/O配置寄存器(AFIO_MAPR)的SWJ_CFG[2:0]位可以改变上述重映像配置。背景默认情况下PA13JTMS/SWDIO、PA14JTCK/SWCLK、PA15JTDI、PB3JTDO、PB4JNTRST都被用作调试接口。如果你想把这些脚省出来做普通IO就要修改SWJ_CFG位。表35 调试端口映像SWJ_CFG[2:0]效果可用调试口被释放的引脚000复位默认全部引脚用作JTAGSWDJTAG SWD无001全部引脚用作JTAGSWD但PB4JNTRST被释放JTAG SWD无复位PB4010关闭JTAG只保留SWD仅SWDPA13/PA14PA15、PB3、PB4100彻底关闭所有调试口无再也烧不进程序全部释放重点除非你确定以后永远不用调试器烧录了否则绝不要设置100。一旦设了你的芯片就再也连接不上调试器只能通过串口ISP擦除后才能恢复新手很容易以为是芯片坏了。日常开发请使用010只释放PA15/PB3/PB4保留最常用的SWDPA13/PA14。8.3.6 ADC 复用功能重映射ADC1外部触发注入转换…ADC1_ETRGIN_REMAP0与EXTI15相连1与TIM8_CH4相连。ADC1外部触发规则转换…ADC1_ETRGEI_REMAP0与EXTI11相连1与TIM8_TRGO相连。解释ADC的规则转换和注入转换原本可以用外部中断线EXTI11/EXTI15来触发。通过重映射可以把触发源改成高级定时器TIM8的某些信号TIM8_CH4或TIM8_TRGO。这样你就可以用定时器来精确控制ADC采样的时刻。这个功能只在大容量产品256KB~512KB Flash上才有。8.3.7 定时器复用功能重映射这一节列出了多个定时器TIM1~TIM5的通道映射选项。我挑几个典型的来解释TIM4_REMAP默认 TIM4_CH1~CH4 在 PB6~PB9设为1后可以搬到 PD12~PD15仅100/144脚封装。TIM3_REMAP[1:0]00PA6、PA7、PB0、PB110PB4、PB5、PB0、PB1部分重映射11PC6、PC7、PC8、PC9完全重映射仅64/100/144脚封装TIM2_REMAP[1:0]可以选择把CH1_ETR从PA0换到PA15把CH2从PA1换到PB3把CH3/CH4换到PB10/PB11等等。TIM1_REMAP[1:0]可以重映射刹车输入BKIN、外部触发ETR以及互补输出通道CHxN例如把BKIN从PB12搬到PA6或PE15。实战意义比如你做电机控制TIM1的互补PWM输出默认在PA8~PA15等脚如果这些脚被其他外设占用你可以把它们整体搬到PE大封装或者用部分重映射搬到其他位置。8.3.8 USART 复用功能重映射USART1_REMAP0 - TX/PA9, RX/PA101 - TX/PB6, RX/PB7。USART2_REMAP0 - PA0~PA41 - PD3~PD7仅100/144脚。USART3_REMAP[1:0]00PB10/PB11/PB12/PB13/PB14TX/RX/CK/CTS/RTS01PC10/PC11/PC12 PB13/PB14部分重映射64/100/144脚11PD8/PD9/PD10/PD11/PD12完全重映射100/144脚使用场景画PCB时发现串口默认引脚走线太绕就可以查这张表换到更顺的引脚上去。8.3.9 I²C1 复用功能重映射I2C1_REMAP0SCL/PB6, SDA/PB7I2C1_REMAP1SCL/PB8, SDA/PB9不适用于36脚封装8.3.10 SPI1 复用功能重映射SPI1_REMAP0NSS/PA4, SCK/PA5, MISO/PA6, MOSI/PA7SPI1_REMAP1NSS/PA15, SCK/PB3, MISO/PB4, MOSI/PB58.3.11 SPI3 复用功能重映射仅互联型SPI3_REMAP0NSS/PA15, SCK/PB3, MISO/PB4, MOSI/PB5和SPI1重映射后的引脚冲突小心SPI3_REMAP1NSS/PA4, SCK/PC10, MISO/PC11, MOSI/PC12注意SPI3_NSS和JTDI共享PA15SPI3_SCK和JTDO共享PB3所以如果你要用SPI3通常要先关掉JTAG设置SWJ_CFG010释放PA15和PB3。8.3.12 以太网复用功能重映射仅互联型STM32F107ETH_REMAP0RX_DV/PA7, RXD0/PC4, RXD1/PC5, RXD2/PB0, RXD3/PB1ETH_REMAP1RX_DV/PB8, RXD0/PB9, RXD1/PB10, RXD2/PB11, RXD3/PB12用于以太网MAC的接收数据线重映射方便PCB走线。3. 参考数据手册8.4节AFIO寄存器描述8.4节告诉你“怎么用代码操作寄存器来实现8.3里的重映射。它详细列出了几个寄存器的每一位分别控制什么。超级重要的前提“对寄存器AFIO_EVCRAFIO_MAPR和AFIO_EXTICRX进行读写操作前应当首先打开AFIO的时钟。”标准库写法RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);寄存器写法RCC-APB2ENR | (10);因为AFIOEN在RCC_APB2ENR的第0位8.4.1 事件控制寄存器 (AFIO_EVCR)这个寄存器控制一个非常冷门的功能把Cortex‑M3内部的EVENTOUT信号输出到某个外部GPIO引脚上。寄存器位详解EVOE位7使能事件输出。为1时允许把EVENTOUT连接到选定的IO口。PORT[2:0]位6:4选择输出到哪个端口000PA, 001PB, 010PC, 011PD, 100PE。PIN[3:0]位3:0选择输出到该端口的哪个引脚0000Px0……1111Px15。实际应用绝大多数应用根本用不到这个寄存器99%的代码里都不会出现。你可以直接忽略它只需要知道它是用来把一个内部调试/同步信号引出来而已。8.4.2 复用重映射和调试I/O配置寄存器 (AFIO_MAPR)这是本节的核心它包含了8.3节里提到的所有重映射开关。整个寄存器共32位每个位或位域控制一个外设的重映射。我会把每个位域都列出来解释不跳过一个。位域名称功能取值含义位0SPI1_REMAPSPI1重映射0默认PA4PA71重映射PA15,PB3PB5位1I2C1_REMAPI2C1重映射0默认PB6,PB71重映射PB8,PB9位2USART1_REMAPUSART1重映射0默认PA9,PA101重映射PB6,PB7位3USART2_REMAPUSART2重映射0默认PA0PA41重映射PD3PD7位5:4USART3_REMAP[1:0]USART3重映射00默认PB10PB1401部分重映射PC10PC1211完全重映射PD8~PD12位7:6TIM1_REMAP[1:0]TIM1重映射00默认PA8~PA12, PB12PB1501部分重映射PA6/PA7/PB0/PB111完全重映射PE7PE15位9:8TIM2_REMAP[1:0]TIM2重映射00默认PA0~PA301部分1PA15,PB310部分2PB10,PB1111完全PA15,PB3,PB10,PB11位11:10TIM3_REMAP[1:0]TIM3重映射00默认PA6,PA7,PB0,PB110部分PB4,PB511完全PC6~PC9位12TIM4_REMAPTIM4重映射0默认PB6PB91重映射PD12PD15位14:13CAN_REMAP[1:0]CAN重映射00默认PA11,PA1210PB8,PB911PD0,PD1位15PD01_REMAPPD0/PD1映射到晶振脚0不映射1PD0→OSC_IN, PD1→OSC_OUT仅小封装位16TIM5CH4_IREMAPTIM5_CH4内部重映射0连接到PA31连接到LSI用于校准LSI频率位21ETH_REMAP以太网重映射0默认PA7,PC4,PC5,PB0,PB11重映射PB8~PB12位22CAN2_REMAPCAN2重映射互联型0PB12,PB131PB5,PB6位23MII_RMII_SELMII/RMII接口选择0MII1RMII以太网PHY接口位26:24SWJ_CFG[2:0]调试接口配置000全开001关JNTRST010只保留SWD100全关危险位28SPI3_REMAPSPI3重映射互联型0默认PA15,PB3,PB4,PB51重映射PA4,PC10,PC11,PC12位29TIM2ITR1_REMAPTIM2内部触发1重映射0连接以太网PTP1连接USB OTG SOF用于时钟校准位30PTP_PPS_REMAP以太网PPS输出重映射0不输出1输出到PB5秒脉冲信号特别注意位26:24SWJ_CFG是重中之重。请牢记设置010只保留SWD既能调试又能释放PA15/PB3/PB4还不会锁死芯片。绝对不要设置100。8.4.3 ~ 8.4.6 外部中断配置寄存器 (AFIO_EXTICR1~4)这四个寄存器EXTICR1~4 负责把GPIO引脚映射到外部中断线EXTI0~EXTI15。每个寄存器控制4条中断线例如EXTICR1控制EXTI0~EXTI3 EXTICR2控制EXTI4~EXTI7以此类推。每条中断线需要4个位来选择引脚来源4位值选择0000PAx0001PBx0010PCx0011PDx0100PEx0101PFx仅大容量/互联型0110PGx仅大容量/互联型举例要把PB0接到EXTI0就需要在AFIO_EXTICR1的低4位即EXTI0[3:0]写入0001。注意只有相应的GPIO端口时钟已经使能RCC_APB2ENR里打开IOPxEN并且该引脚被配置为输入模式外部中断才能正常工作。4. 使用步骤 —— 手打代码这一部分我把从“拿到一个项目”到“完成重映射或外部中断配置”的全过程拆解成 6个步骤4.1 骨架开始 │ ├─ 步骤1查阅手册/数据手册确认我的芯片封装支持这个重映射吗 │ ├─ 步骤2开启RCC时钟外设时钟 AFIO时钟缺一不可 │ ├─ 步骤3处理调试端口如果目标引脚被JTAG/SWD占了先释放 │ ├─ 步骤4配置GPIO底层属性速度、模式、上拉/下拉 │ ├─ 步骤5写入AFIO寄存器执行重映射 或 选择外部中断引脚 │ ├─ 步骤6初始化外设本身初始化USART/SPI/TIM 或 配置NVIC中断 │ └─ 结束步骤 1查阅参考手册 8.3 节确认目标外设支持的重映射选项、封装限制及引脚冲突。步骤 2// USART1 重映射至 PB6/PB7开 GPIOB、USART1、AFIO 时钟RCC-APB2ENR|(10)// AFIOEN|(13)// IOPBEN|(114);// USART1EN步骤 3释放调试引脚如目标为 PA15 / PB3 / PB4// SWJ_CFG 010关闭 JTAG保留 SWDAFIO-MAPR(AFIO-MAPR~(0x724))|(0x224);步骤 4配置 GPIO 复用模式// PB6复用推挽输出50MHzPB7浮空输入GPIOB-CRL~(0xFF24);GPIOB-CRL|(0x0B24)// PB6: CNF10, MODE11|(0x0428);// PB7: CNF01, MODE00步骤 5执行重映射 / 选择外部中断引脚// 场景 AUSART1 重映射至 PB6/PB7AFIO-MAPR|(12);// USART1_REMAP// 场景 BPB0 映射至 EXTI0AFIO-EXTICR[0](AFIO-EXTICR[0]~0x000F)|0x0001;// EXTI0 PB0步骤 6初始化外设 / 中断// USART172MHz PCLK2115200-8-N-1USART1-BRR(6254);// 72MHz / 115200 625USART1-CR20;// 1 停止位USART1-CR1(113)// UE|(13)// TE|(12);// RE若配置外部中断PB0 下降沿触发EXTI-FTSR|(10);// 下降沿触发EXTI-IMR|(10);// 使能 EXTI0NVIC-ISER[0](16);// EXTI0_IRQn 6

相关新闻

用 ASP.NET 搭一个地方特产商城:54125 大理特色产品销售平台实战梳理

用 ASP.NET 搭一个地方特产商城:54125 大理特色产品销售平台实战梳理

项目概览项目项内容开发语言C#开发框架ASP.NET数据库SQL Server系统模式B/S 架构核心业务产品展示、购物车、订单、配送、售后、公共信息管理项目定位:把地方特色产品搬到线上大理具有普洱茶、手工艺品、旅游纪念品等特色产品资源,但传统线下销售渠道受地…

2026/10/19 1:23:21 阅读更多 →
AI 诊断工具普及,普通维修师傅还有饭吃吗?

AI 诊断工具普及,普通维修师傅还有饭吃吗?

这段时间刷短视频,天天刷到那种AI电路板诊断仪,什么一键定位短路、拍个照就识别芯片型号、热成像秒找故障点,评论区一堆人跟着瞎嚷嚷,说再过两年维修师傅都得失业。同行群里也吵得厉害,不少干了十来年的老伙计都发慌&a…

2026/10/18 14:35:30 阅读更多 →
ACTH (1-39) (rat);SYSMEHFRWGKPVGKKRRPVKVYPNVAENESAEAFPLEF

ACTH (1-39) (rat);SYSMEHFRWGKPVGKKRRPVKVYPNVAENESAEAFPLEF

一、基础信息中文名称:大鼠促肾上腺皮质激素 (1-39)三字母序列:Ser-Tyr-Ser-Met-Glu-His-Phe-Arg-Trp-Gly-Lys-Pro-Val-Gly-Lys-Lys-Arg-Arg-Pro-Val-Lys-Val-Tyr-Pro-Asn-Val-Ala-Glu-Asn-Glu-Ser-Ala-Glu-Ala-Phe-Pro-Leu-Glu-Phe单字母序列&#xff1…

2026/10/17 7:13:23 阅读更多 →

最新新闻

作业车间调度中深度强化学习状态特征设计实战与避坑指南

作业车间调度中深度强化学习状态特征设计实战与避坑指南

作业车间调度是制造系统里最经典的优化问题之一。这些年我一直在帮工厂做排产相关的算法落地,最深的体会是:调度算法从理论到能用,中间隔着一条叫"状态表达"的河。模型选得再花哨,超参调得再好,状态特征设计…

2026/10/19 6:56:03 阅读更多 →
视频智能分析算法实战:从模型选型到部署优化的关键细节

视频智能分析算法实战:从模型选型到部署优化的关键细节

这些年做视频智能分析算法,从最早的帧差法、背景建模,到现在的深度学习端到端推理,技术路线换了好几代,踩过的坑也足够写一本小册子了。视频智能分析算法,说白了就是让计算机"看懂"摄像头画面里正在发生什么…

2026/10/19 6:56:03 阅读更多 →
Qt5 WebEngine SEO行为模拟实验框架

Qt5 WebEngine SEO行为模拟实验框架

简介:本资源是一套基于Qt5框架开发的SEO快排点击软件源码,面向具备C和Qt基础的开发者,用于研究黑帽SEO中模拟用户点击行为的技术实现原理。代码通过多浏览器UA切换、随机停留与点击逻辑、网络请求调度等机制,尝试影响搜索引擎对目…

2026/10/19 6:56:03 阅读更多 →
Gemma 4本地部署实战指南:从硬件评估到参数调优

Gemma 4本地部署实战指南:从硬件评估到参数调优

1. 为什么要在本地跑 Gemma 4:价值与适用场景1.1 本地部署解决的三大核心问题把 Gemma 4 跑在本地,这件事本身就有很强的吸引力。先说一个大白话结论:大模型本地部署不是你非得有八张专业显卡才能碰的领域。Gemma 4 属于开放权重模型里对消费…

2026/10/19 6:56:03 阅读更多 →
上下文工程、任务分解与工具编排:Agent时代三大核心能力

上下文工程、任务分解与工具编排:Agent时代三大核心能力

最近在技术社群里潜水,看到一种很分裂的现象:一边是大家都在聊Agent、multi-agent、自主规划这些新概念,另一边还有一大批人被“提示词工程”这个词困在原地,每天研究的是“system prompt要怎么写才完美”“温度参数调到0.7还是0.…

2026/10/19 6:56:03 阅读更多 →
YOLOv7 TensorRT 量化部署完整工程:PTQ/QAT 转 INT8 精度优化与 C++ 实战

YOLOv7 TensorRT 量化部署完整工程:PTQ/QAT 转 INT8 精度优化与 C++ 实战

简介:面向目标检测开发者的YOLOv7 PTQ与QAT训练及TensorRT C部署全套工程资料,解决模型量化压缩与GPU实时推理落地的完整链路问题。压缩包共134个文件、35.14MB,包含35个Python脚本、33个YAML配置、14个Jupyter Notebook、5个C源文件及配套头…

2026/10/19 6:55:02 阅读更多 →

日新闻

频率跟踪型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 阅读更多 →