OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2820|回复: 3

STM32RBT6如何实现软复位

[复制链接]

4

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2015-7-31
在线时间
0 小时
发表于 2015-10-7 20:36:45 | 显示全部楼层 |阅读模式
5金钱
  我现在需要做一个企业项目,使用的控制器是STM32F103RBT6 ,现在需要按下开关键,然后需要程序从头开始运行。我的理解是需要软复位。我也查找了一些资料的,但是没有找到明确的软复位实现方法的,我看到系统函数里面有:
void Sys_Soft_Reset(void)
{   
SCB->AIRCR =0X05FA0000|(u32)0x04;  

我直接调用这个函数。问题如下:
1、我使用了显示屏,关于开关按键,我采用的是外部中断。在进一次外部中断时,我将显示屏打开,然后对系统进行软复位。代码如下:问题是,我现在程序烧录进去后,每次按下开关按键,只能看见屏幕闪一下就灭了。
2、说明:tim1和tim3 是用来控制电源LED灯和蜂鸣器的。
本人菜鸟,刚开始玩STM32,希望大神帮我解答下,老师的项目催的急,快崩溃了。
[mw_shl_code=c,true]void EXTI2_IRQHandler(void) { LCD_Clear(BLACK); delay_ms(10); //???? if(PDin(2)==0) //°??ü2 { // TIM1->CR1|=0x01; //?????¨?±?÷1 // delay_ms(100); // TIM1->CR1&=0xfe; if(LCD_LED==0) { start=1; lcd_flag=1; TIM3->CR1&=0xfe; PAout(0)=1; Flag_auto=1; Sys_Soft_Reset(); Sys_Standby(); LCD_Clear(BLACK); } else { TIM3->CR1|=0x01; Flag_auto=0; lcd_flag=0; LCD_Clear(BLACK); } // LCD_LED=~LCD_LED; //??±?±??? } EXTI->R=1<<2; //????LINE2????????±ê???? }[/mw_shl_code]

最佳答案

查看完整内容[请看2#楼]

调用这个函数就足够了. 你想在哪里进入,就在哪里调用即可.
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-10-7 20:36:46 | 显示全部楼层
调用这个函数就足够了.
你想在哪里进入,就在哪里调用即可.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

4

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2015-7-31
在线时间
0 小时
 楼主| 发表于 2015-10-8 11:05:09 | 显示全部楼层
今天早上重新试了一下,把复位函数放在主函数中,是可以执行的。这个软复位函数是可以使用的
回复

使用道具 举报

4

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2015-7-31
在线时间
0 小时
 楼主| 发表于 2015-10-9 10:38:44 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
嗯嗯,解决了的,之前以为是这个函数问题的。谢谢您的解答。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-18 12:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表