我现在需要做一个企业项目,使用的控制器是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]
|