嵌入式常见问题解决指南二
本文整理了嵌入式开发中比较常见的几个问题与解决方法
·
- 使用硬件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个字符。
更多推荐
所有评论(0)