• 使用硬件I2C导致程序卡死
排除代码问题,可能是外设模块接触不良或损坏,导致I2C一直卡在等待Busy结束。另外硬件I2C本身设计也有问题,可能造成总线死锁,建议使用软件模拟I2C。
  • TIM1或TIM8的PWM不工作
TIM1和TIM8是高级定时器,若要使用PWM功能,需要多加一句TIM_CtrlPWMOutputs(TIMx, ENABLE); //TIMx为TIM1或TIM8
  • 用ESP8266无法连接手机热点(代码和硬件均无问题)
手机打开WLAN热点设置,选择AP频段为2.4GHz频段,若选择5GHz则无法连接。
  • Keil5报错:could not stop cortex-m device
可能是因为进入睡眠模式,WKUP引脚(STM32F103C8T6上是PA0)被其他外设等占用,导致频繁收到上升沿,在睡眠模式和运行模式直接来回切换导致错误。在睡眠模式下,WKUP引脚不能被其他外设占用。
  • USART/CAN/USB配置正确但无法发送和接收信息
一定要注意开发板的跳线帽是否正确连接,尤其是较大的开发板,相同的引脚可能兼具多种功能,需要正确连接跳线帽进行功能的选择,建议每次使用USART/CAN/USB前先检查跳线帽的连接。
  • 使用ST-Link下载程序不自动运行
使用ST-Link,即使勾选了Reset and Run,下载后程序也不自动运行,解决方法:
将图中的Enable勾选去掉。
  • 程序进入了HardFault_Handler中断
可能是数组等出现了溢出,解决方法:进入Debug打断点,找到是哪一个函数运行后导致进入了中断,检查函数中被使用的数组中元素是否发生了越界(溢出)。比如,将150个字符传入了函数中,但负责接收的数组只能容纳100个字符。
Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐