1

船内で働いてSTM32F4います。私の IDE は IAR Embedded Workbench です。コードからソフトウェア リセットを実行しようとしています。そのために、ヘッダーNVIC_SystemReset();で定義された API ' ' を使用しました。core_cm4.hしかし、システムのリセットは行われていません。

STM32F3、同じIDEで同じことを試しました。ヘッダーの関数を使用しました NVIC_SystemReset();core_sc300.hそのソフトウェアのリセットを使用しています。両方のファイルの関数の定義が同じで、両方のコントローラが Cortex M4 のみであることがわかりました。STM32F4 ボードの問題は何ですか? これを解決するのを手伝ってくれる人、またはSTM32F4でシステムをリセットするための別の方法を提案できる人はいますか?

助けてください。前もって感謝します

4

3 に答える 3

0

の繰り返しが何度かありNVIC_SystemReset()ました。使用しているバージョンのコードを投稿してください。私が使用している現在の[動作中のSTM32F4]バージョンは次のとおりです。

/** \brief  System Reset
    The function initiates a system reset request to reset the MCU.
 */
__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 */
}
于 2014-08-04T16:42:48.223 に答える