私はSTM32F4を使用していますが、ソフトウェア割り込みを生成したいとします。 問題は、ソフトウェアによって、またはEXTIラインに接続されたピンによって割り込みが生成された場合、どのように割り込みハンドラで知ることができますか?EXTI Lineをソフトウェア割り込みに使用
答えて
STM32F4にソフトウェア割り込みを生成するには、2つの方法があります。
ジェネリックのCortex-M4方法やソフトウェアトリガ割り込みレジスタへの書き込み(STIR)、または
EXTIソフトウェア割り込みイベントレジスタへの書き込みのSTM32 EXTI具体的な方法(EXTI_SWIER )。
私はSTIRが書き込み専用レジスタであるため、割り込みが区別される第一の方法ではないと思います。ただし、EXTI_SWIERはr/wで、割り込みをトリガするために書き込まれたビットは、EXTI_PRの対応するビットが明示的に書き込まれるまでクリアされません。したがって、EXTI_SWIERを読み取るだけで割り込みがソフトウェアでトリガされるかどうかを判断することができます。 1つの割り込みを共有EXTIライン用
void EXTI0_IRQHandler(void)
{
// Detect SWI
bool is_swi = (EXTI->SWIER & 0x00000001u) != 0 ;
// Clear interrupt flag
EXTI_ClearITPendingBit(EXTI_Line0);
if (is_swi)
{
...
}
else
{
...
}
}
には、最初にPRレジスタをチェックすることにより、アクティブラインを決定しなければならない:
void EXTI15_10_IRQn(void)
{
for(uint32_t exti = 10; exti < 15; exti++)
{
bool is_swi = false ;
if(EXTI_GetFlagStatus(exti) == SET)
{
is_swi = (EXTI->SWIER & (0x1u << exti)) != 0 ;
// Clear interrupt flag
EXTI_ClearITPendingBit(exti) ;
if (is_swi)
{
...
}
else
{
...
}
}
}
}
詳細な回答をいただきありがとうございます。申し訳ありませんが、その質問はあまり明確ではありませんでした。 –
@ Samer.M:あなたを歓迎します。問題を解決するために質問を編集する必要があります。 – Clifford
- 1. TRAP、ソフトウェア割り込みとハードウェア割り込みの違いは?
- 2. ソフトウェアでのネットワーク割り込みのテスト
- 3. stm32f030のポートBで外部割り込みを使用
- 4. ハードウェアとソフトウェアの割り込みを無効にする
- 5. ソフトウェアとハードウェア割り込みの相違
- 6. 割り込み(レジスタのみ)を使用しないVGAプログラミング
- 7. 割り込みsuper.onCreate()
- 8. 割り込みフラグと割り込み保留中のビットstm32
- 9. PIC用mikroCを使用したPICマイクロコントローラのタイマベース割り込み
- 10. 割り込みは、割り込みが、私はAtmega328pマイクロコントローラとArduinoの宇野を使用してい
- 11. interruptPiを使用して割り込みとlcdを同時に使用する
- 12. PCIe割り込み処理用Linuxカーネル
- 13. Arduino/ESP8266割り込みを使用してサンプルを取る
- 14. 音声アシスタントをソフトウェアに組み込む
- 15. Attiny85タイマ割り込みでグローバル変数を使用する
- 16. 割り込み方法を使用したスレッド終了
- 17. 割り込みコンテキストでmutexを使用することのメリット
- 18. PSoCを使用して割り込み4
- 19. Cコードを使用したAT89S52の割り込み
- 20. ATmega328PでUDREを使用する割り込み駆動型USART
- 21. Linux Userspace sysfsを使用したGPIO割り込み
- 22. pytestでキーボード割り込みフックを使用する
- 23. Matlab - ハンドラを使用したprocessusの割り込み
- 24. jquery割り込みJavascriptの読み込み中にjquery-1.7.1.min.js
- 25. 他の割り込みベクタ内の割り込みベクタを呼び出す
- 26. ESP8266外部割り込み
- 27. Ardino USART1割り込み
- 28. カーネルモジュールプログラミング(割り込みハンドラ)
- 29. アセンブラ16ビット割り込み
- 30. dsPIC33外部割り込み
あなたが求めているものは不明です。ここに記載されているEXTI割り込みを起動していますか?http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0553a/Cihhbccd.html? – Clifford
ここには良い質問がありますが、おそらくSTM32に慣れていない人にとっては、あなたが求めていることを理解するためには少し研究が必要です。誰もがその努力をすることを期待してはいけません。あなたがしていることを説明するためのコードを含めるべきでしょう。それは疑問を投げかけることであり、議論が終わり、票を集めることですが、いくつかの説明を加えれば有用で興味深い質問になるかもしれません。 – Clifford