麦龙电子 发表于 2017-10-5 15:20:02

stm32f1软件复位IO口电平如何保持

本帖最后由 MrJiu 于 2017-10-5 16:46 编辑


         __set_FAULTMASK(1);      // 关闭所有中端
         NVIC_SystemReset();            // 复位这是一个软件复位的问题,现在我用的是F1的芯片但是硬件电路已经好了,不想更改了,,但是软件复位现在有一个继电器的电平保持,但是软件复位不能保留IO的电平,,,,,之前请教别人说用下面的代码可以实现。。。其实就是修改内核的方法,,但是我还是没有实现,,由于现在的电路已经是确定的,,不想增加锁存器或者外挂FLSH的方法,,,,,哪位前辈可以实现下面的方法修改内核保留继电器的电平的方法,,,小白感激不尽
谢谢啊




static __INLINE void NVIC_SystemReset(void)
//{
//SCB->AIRCR= ((0x5FA << SCB_AIRCR_VECTKEY_Pos)      |
//               (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) |
//               SCB_AIRCR_SYSRESETREQ_Msk);                   /* Keep priority group unchanged */
//__DSB();                                                   /* Ensure completion of memory access */            
//while(1);                                                    /* wait until reset */
//}
{
//置位VECTRESET
SCB->AIRCR= ((0x5FA << SCB_AIRCR_VECTKEY_Pos)      |
               (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) |
               SCB_AIRCR_VECTRESET_Msk);

__DSB();
while(1);



}

MrJiu 发表于 2017-10-5 16:44:42

硬件复位期间,IO口电平未知。。复位完成后,IO的电平就是参考资料给的值。。。

MrJiu 发表于 2017-10-6 09:32:53

复位期间继续保存所需要的电平?这个只能外部硬件实现了。。。。
页: [1]
查看完整版本: stm32f1软件复位IO口电平如何保持