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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM