割り込みネストの問題があるかどうかをCAN確認できます。その場合は、割り込み優先度を調整することでこの問題を解決できます。
割り込みネストの問題がなければ、この問題は存在しないと思います。
また、GPIO 割り込みサービス関数が割り込みフラグをクリアするかどうかを確認します (例: "PINS_DRV_ClearPortIntFlagCmd(PORTn)")。
問題は、POWER_SYS_SetMode を呼び出して VLPS モードに入るときに、関数の開始から STANDBY(); に到達するまでに約 16 ミリ秒かかることです。
この 16 ミリ秒の期間中に GPIO 割り込み (ACC ON) がトリガーされても、VLPS エントリは妨げられず、関数は STANDBY(); まで実行を継続します。STANDBY(); が実行された後にのみ、MCU を VLPS から起動するために割り込みが必要になります。
この 16 ミリ秒のウィンドウ中に GPIO 割り込みがトリガーされた場合に、VLPS エントリ プロセスを中止できるようにする方法はありますか?
こんにちは@シャオティエンジ
あなたが言及している「ACC ON」は、MCU を起動する GPIO 割り込みのことですか?
GPIO 経由で起動している場合は、その GPIO ポートの割り込み優先度を変更して再度テストしてみてください。