历史上的今天
今天是:2024年09月01日(星期日)
2018年09月01日 | stm32功能严重异常的几个常见原因
2018-09-01 来源:eefocus
我们在从事MCU应用开发过程中,难免会碰到MCU芯片异常的问题。比如异常复位,表现为复位脚有电平跳变或者干脆处于复位电平;在做代码调试跟踪时,发现代码往往进不到用户main()程序;或者时不时感觉芯片死掉了,功能完全不可控等。
针对类似严重异常情况的原因我在这里大致总结下,与大家分享。
1、时钟问题。一般表现在时钟配置异常,比方配置超出芯片主频工作范围。【对于STM32系列MCU,如果使用STM32CUBEMX图形化工具做配置,基本可以回避这个问题】
2、电源问题。比方电源质量差,纹波过大,尤其开关电源供电时;或者供电芯片质量差,输出不稳定;或者系统供电能力不足而引起电源波动等。
3、BOOT脚配置问题。对于ARM芯片往往都有些BOOT配置脚。经常遇到有人因为BOOT脚的焊接或接触不良导致各类奇怪问题。这种情况多表现在芯片功能时好时坏,或者部分芯片正常,部分芯片异常。
4、启动文件问题。经常因为选错了启动文件,导致程序无法正常运行,或者说调试时好好的,脱机运行就出鬼。这点在做不同系列芯片间移植时最容易碰到。
5、中断请求位清除问题。由于中断请求位没有及时清除导致中断没完没了的重复进入,感觉系统死机一般。
6、堆或栈的越界溢出。这个也会导致芯片无法正常工作,调试时往往可能会有硬错提示。
7、VCAP脚问题。有些MCU芯片有VCAP脚,该类脚往往需要接上适当的电容,如果无视了它的话,也可能导致整个芯片的功能异常。
上面这几个原因比较容易导致MCU出现功能严重异常,也不太容易简单地通过查看MCU技术手册直接获得答案,分享出来算作一些提醒。
上一篇:STM32的宏定义问题
下一篇:STM32的USART讲解
史海拾趣
|
串电阻一般是不能提高耐压!!!! 每种电阻都有自己的耐压等级,有耐压要求时,最好选插角的,耐压会相对高一点的,如果不怕贵,可以选取玻璃釉的,耐压性能更好。 为什么什么串电组不能提高耐压了,我用插角的举例: 一般的插角电组都是外面都 ...… 查看全部问答> |
|
最近在学嵌入式,学习USB的代码中有些问题不知道什么意思? 其中“*paddr = (unsigned char *)(addr - 4);” 原文void Usb_Get_Data(unsigned int addr) { unsigned short i_st; un ...… 查看全部问答> |
|
typedef struct _USB_DEVICE_DESCRIPTOR { UCHAR bLength ; UCHAR bDescriptorType ; USHORT bcdUSB ; UCHAR bDeviceClass ; UCHAR bDevice ...… 查看全部问答> |
|
两个usb蓝牙适配器,一个内部是csr芯片的工作正常,一个内部是cw6626芯片接usb后总线枚举失败,具体是DEVICE_CONFIG_STATUS_SCHEDULING_GET_INITIAL_DEVICE_DESCRIPTOR失败了。。。 大家碰过这问题吗?关键是这两个适配器在PC上(windows和linux) ...… 查看全部问答> |
|
我在我发出的Ping包中设置了IP头的不分段标志位为1,也就是发送的时候不允许分段。这样的数据包会不会被路由或者是交换机所丢弃?如果会被丢弃,是那一条规则设置会导致丢弃,比如说防DDOS?… 查看全部问答> |
|
本人第一次写看门狗程序有以下问题 A、以下的程序写法算是在主程序中清狗吧!如果不是怎样改正!! B、听一些开发人员说看门狗写以写三到四层,这个方法在书本没有介绍到,这个概念大家可以讲讲吗?是怎样写的! C、是否要设定端口初始化!那么 ...… 查看全部问答> |
|
在说到主角之前,先交代一个背景。1968年,美国建立了ALOHA网络,该网络需要固定的基站,网络中的每个节点都必须和其他所有节点直接连接才能互相通信,是一种单跳网络;1973年,美国又发展建立了PR网络,出现了真正意义上的多跳网络,所谓 “多跳” ...… 查看全部问答> |




