STM32单片机的软件重启和远程重启

STM32单片机可以通过以下代码实现重启(core_cm3.h)。同时如果利用AT命令进行无线通讯,服务器后台和客户端之间用MODBUS通讯即4G+MODBUS RTU,可以利用F05写单个线圈的方法结合软件重启实现远程MCU重启

if (IO_OUT0) 
{        
    delay_ms(100); 
    __set_FAULTMASK(1); 
    NVIC_SystemReset(); //关闭所有中断,系统复位;    
}

__STATIC_INLINE void NVIC_SystemReset(void)
{
      __DSB();     /* Ensure all   outstanding memory accesses 
    included  buffered write are completed before reset */
  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 */
}


                           
View Code

猜你喜欢

转载自www.cnblogs.com/jieruishu/p/11039438.html