待解决

机器人编程套件组装上电后IO全没反应,是板子问题还是我接线问题?

老曾
老曾
2026/04/21 09:11

最近公司接了个小项目,要给客户做一套机器人编程教学用的套件组装,硬件部分我自己搭的:用的是市面上那种常见的STM32+步进电机+舵机+几个限位开关的方案,IO口分配按照例程接的,限位开关接在外部中断引脚上。整套套件组装完上电,电机能转,舵机也能动,但是所有限位开关触发都没反应,外部中断进不去,逻辑分析仪抓不到边沿。接线我反复对过两遍没发现问题,供电也正常,3.3V和5V都量过了。

想问下这种情况一般先排查哪块?是不是STM32的IO口模式没配对,还是套件组装的时候某个芯片虚焊了?有没有人碰到过类似的情况?

11 3

全部回复 (3)

诚信经营
诚信经营#1

外部中断没反应,十有八九是IO口没配对触发方式。你检查一下代码里GPIO_InitStruct.GPIO_Mode设的对不对,这种教学套件常用的例程很多默认是浮空输入,但实际接限位开关的电路如果是上拉/下拉的话,不匹配就触发不了中断。还有一个坑是AFIO时钟没开,STM32的外部中断是要单独开AFIO时钟的,这个忘开了中断控制器根本收不到信号,跟IO口没关系。我之前带学生做套件组装的时候至少碰到过三次这种情况,全是这个原因。

2026/04/21 22:30
liu1999
liu1999#2

先别急着怀疑板子,套件组装完上电之前你用万用表量过限位开关按下的时候引脚电平变化没有?直接量那个IO口对地的电压,按下和松开各是多少,数字对得上说明硬件没问题,代码再排查。虚焊的话一般表现为时好时坏,不会所有限位开关同时都没反应。

2026/04/22 19:09
和气生财
和气生财#3

电机能动舵机能动说明主控没死,问题应该就在外部中断这一路。你用的什么型号的STM32?F1系列的话EXTI配置那套比F4麻烦不少,HAL库配的话注意NVIC的抢占优先级和子优先级,光设了EXTI但是NVIC没使能一样白搭。

2026/04/25 01:20