STM32做主控的PCBA焊接成品运行正常,测试了几个功能(包括OLED屏、LED、大部份按键、引出的GPIO)几乎都可以使用。但发现KEY_RIGHT(右侧的按键,PB13)接地后,STM32无法识别按下动作。KEY_RIGHT在内部是连接的PB13和地,检查发现,就算用导线强制将PB13接地,GPIO_INPUT模式读取信号仍然是高电平(接法是内部上拉)。然后尝试配置PB13内部浮空和内部接地,发现内部浮空时,读取信号同样永远是高电平(不管是否PB13导线直接接地不通过按钮),但当PB13内部下拉时,读取信号永远是低电平(即使用导线接3.3v也没用,读取还是低电平)。除了PB13之外,其余按键(PA0,PA1,PB12,PB14,PB15)GPIO_INPUT模式均正常,按下后可以读取出低电平。自己死活搞不好,哭了!
我刚学嵌入式开发没多久,没有老师教,画的板子可能非常不规范,不知道是不是我画的板子的问题,非常希望各位大老帮忙看下,除了这个问题之外的其他设计问题也请多多指出!
P.S. 测试程序在TB买的那种蓝色黄针长条型的STM32最小系统板上测试通过,应该不是程序的问题。在最小系统板上,PB13内部上拉后接地可以正常读取出低电平。