三部作を得るために、あなたを教えるためにプログラミング割り込みSTM32は、設定および割り込み優先順位の設定を中断します

       STM32は必須の機能として中断し、その重要性は自明であるため、優れたストップ学習の基本です。

  今日はコンフィギュレーションを食べるについての十分な知識を中断するので、諺に:Quickenの仕事を。それはどのような問題がある?プロジェクト私はタッチキーボードのTTP229を使用し、結果のキーボードをテストするときは、パスワードを入力することはできません?最後に、デバッガは、優先順位のバグが中断による影響を受けています。

  このプロジェクトは、MCUのSTM32F030C8型を使用することで、我々はこのタイプMCUの外部割り込みベクタテーブルを表示し、アセンブリファイルを開始するには、標準のライブラリファイルへの公式からダウンロードすることができます。(下図)

  まず、私たちが見て何NVIC市、中core_cm0.h標準ライブラリ・ファイル内のNVIC構造。

  その中で、我々は一般的ISER、ICER、IPこれらの3つのレジスタを使用します。ISERが割り込みをクリアするために、割り込みを有効にするためにICERを使用し、IPは、割り込み優先順位を設定するために使用されます。

  第二に、我々は、割り込み優先順位を見て、割り込み優先度がNVIC_IPRxを登録し、このレジスタは、各外部割り込み優先度は合理実際には、それだけで高い使用して、0〜255の範囲で設定することができ、原則的には、8ビットであり、4ビット。これらの4ビットと、2つの優先順位プリエンプション優先に分割され、それに応答して、その後、割り込み優先順位は、以下の状況に分けました:

  図1は、異なる先取り優先順位は、ネストされた割込みを含むであろう、先取り優先順位の高い優先度が優先度が実現される、より低い優先順位を先取りします。(注:優先順位を下げ、より高い優先度)

  図2に示すように、同一の優先順位プリエンプションはなく、異なる優先順位、応答に優先度の高い応答に応答して、ネストされた割り込みに関連します。(例:それは最初の応答割り込み高い優先度を実行する対応しながら2つの割り込み、)(注:優先順位番号が低いほど、優先順位が高いです)

  図3に示すように、優先順位および先取り優先順位に応答が同じで、数、ハードウェア割り込み、より少ない数の割り込み、優先度の高いです。(それらを参照するには、割り込みベクタテーブルから数割り込みハードウェア)

  割り込み優先グループは、4割り込み優先順位の用途だけ高いので、その割り込み優先パケットそれぞれの状況を次のとおりです。

  

  最後に、割り込みプログラムの三部作を総括するには:

  最初のステップ:具体的に対応するビットをイネーブル割り込みから、周辺割り込みイネーブル。

  (:クロックはGPIOを使用するために、我々GPIOポートの前にオンにする必要があり、使用EXTIは、例えば事実ゆえafioクロックをオンにする必要があります)

  第二步:初始化NVIC_InitTypeDef结构体,配置中断优先级分组,设置抢占优先级和响应优先级,使能中断请求。

  库函数:

  NVIC_IRQChannel()设置不同的中断源,在IRQn_Type IRQn结构体寻找自己对应的中断源。

  NVIC_IRQChannelPreemptionPriority()设置抢占优先级

  NVIC_IRQChannelCmd() 中断使能或者取消使能

  第三步:编写中断服务函数,在stm32f0xx_it.c文件中,都有一个根据中断向量表,实现的一个空的中断服务函数,需要我们自己重新编写。

 

stm32相关的视频资料

(stm32直流电机驱动)
http://www.makeru.com.cn/live/1392_1218.html?s=45051

(时钟系统)
http://www.makeru.com.cn/live/1392_1082.html?s=45051
STM32中断系统
http://www.makeru.com.cn/live/3523_1745.html?s=45051
STM32可以这样玩
http://www.makeru.com.cn/live/4034_1460.html?s=45051
分析STM32的的开发方式
http://www.makeru.com.cn/live/3523_1673.html?s=45051

おすすめ

転載: www.cnblogs.com/923327iu/p/12052973.html