8924|6

1274

帖子

2

TA的资源

版主

楼主
 

STM32F4由于RST引脚外接上拉电阻导致NVIC_SystemReset()函数软件复位失效 [复制链接]

本帖最后由 通宵敲代码 于 2022-1-22 01:49 编辑

手头有个项目需要用STM32F4芯片做个验证,功能不是很复杂,

于是随手抄起了之前画的F411的核心板,板子是仿的WeAct的,原理图兼容。

验证过程中一切顺利,唯独在调用HAL_NVIC_SystemReset()函数,执行软件复位时,系统卡死了。

 

先附上函数内容,

__STATIC_INLINE void NVIC_SystemReset(void)
{
  __DSB();  

  SCB->AIRCR  = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos)    |
                           (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) |
                            SCB_AIRCR_SYSRESETREQ_Msk    );         
  __DSB();                                                         

  for(;;)                                                     
  {
    __NOP();
  }
}

这就奇怪了,板子是之前用过的,硬件也没问题,硬件复位之后也会正常运行程序,

软件也仅仅是重置了复位寄存器,并没有复杂的操作,总不至于HAL库出问题了吧。

于是我尝试直接自己写复位寄存器,就一条赋值语句,总不至于还出错吧。

SCB->AIRCR = 0x05FA0004;

结果还是打脸了,看起来不是软件的问题。

 

来来回回折腾了半个多小时,查来查去,突然发现板子上复位引脚的上拉电阻焊上了。。。难道

用过STM32芯片的应该都知道,F1的复位引脚是没有内不上拉电阻的,所以默认都是接一个10K的电阻到VCC,

而从ARM M4内核以后,复位引脚内部都会集成一个上拉电阻,外部只需要接一个100nF的复位电容即可!!

难道是这个原因??

 

有了猜想就去验证一下,就是我上网百度了一下,发现遇到这个坑的还不止我一个,而且不光是F4芯片

找到了问题就验证一下,上老铁拆电阻,之后再次上电测试,软件复位终于正常了,多次测试都没问题;

这时候突然想到前边似乎有看到过这个说法,有人给出过这样的提醒,雨后回去扒拉了下浏览记录,果然

然后我从网上搜一个下WeAct官方板子的照片,果然这个上拉电阻没有焊接

官方给的原理图上也有标注,还是我大意了。

 

 

 

 

此帖出自ARM技术论坛

最新回复

这个是个干货,顶一下楼主。参考别人板子不仔细就容易有坑啊。   详情 回复 发表于 2022-3-1 13:40
点赞(1) 关注
 

回复
举报

224

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

额,我项目用到的STM32F407都是有加上拉电阻的,运行也一切正常啊!

此帖出自ARM技术论坛
 
 
 

回复

3225

帖子

0

TA的资源

五彩晶圆(中级)

板凳
 

这个是个干货,顶一下楼主。参考别人板子不仔细就容易有坑啊。

此帖出自ARM技术论坛
 
 
 

回复

51

帖子

0

TA的资源

一粒金砂(中级)

4
 

如果外接看门狗这里还得要注意呀。

此帖出自ARM技术论坛
 
 
 

回复

7671

帖子

2

TA的资源

五彩晶圆(高级)

5
 

串进去并联了?

此帖出自ARM技术论坛
 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

回复

6

帖子

0

TA的资源

一粒金砂(初级)

6
 

可以先看一下硬件在官网上查一下。

此帖出自ARM技术论坛
 
 
 

回复

13

帖子

0

TA的资源

一粒金砂(初级)

7
 

这个是个干货,顶一下楼主。参考别人板子不仔细就容易有坑啊。

此帖出自ARM技术论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表