外部割込み・イベントコントローラ(EXTI)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[FrontPage]]
*外部割込み/イベントコントローラ(EXTI) [#hccbc89a]
各GPIOの0はEXTIの0に、GPIOの1はEXTIの1にといった具合に、1...
#contents
**クロックの供給とGPIOの初期化 [#l304b88c]
/* Enable Button GPIO clock */
RCC_APB2PeriphClockCmd(GPIOX_RCC | RCC_APB2Periph_AFIO, ...
/* Configure Button pin as input floating */
GPIO_InitStructure.GPIO_Pin = OB_SW_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(OB_SW_PORT, &GPIO_InitStructure);
**EXTIとして使用するGPIOの指定 [#nfd9d55c]
GPIO_EXTILineConfig(GPIO_PortSourceGPIOx , GPIO_PinSourc...
:GPIO_PortSource|使用するGPIOポートをGPIO_PortSourceGPIO&...
:GPIO_PinSource|使用するGPIOピンを、GPIO_PinSource&color(...
**EXTIの初期化 [#q92979b5]
EXTI_InitStructure.EXTI_Line = EXTI_Line0;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
**NVICの設定 [#w2101e73]
NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0...
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
-NVIC_PriorityGroup_0から4の5個
-pre-emptionの数字が低いの方が優先順位が高い、例えば:0...
-pre-emptionは同じの場合、subpriorityの数字を確認する、小...
**EXTI割込み(ライン0-4) [#v8cf930c]
***EXTI0_IRQHandler() [#t2ccbc25]
void EXTI0_IRQHandler(void)
{
/* Clear the Key Button EXTI line pending bit */
EXTI_ClearITPendingBit(EXTI_Line0);
処理();
}
***EXTI_ClearITPendingBit(EXTI_Linex) [#tdea1be4]
-EXTI割込みの割込みペンディングビットをクリアします。
:EXTI_Linex|クリアする対象のEXTIラインをEXTI_Line&color(b...
**EXTI割込み(ライン5-9) [#c47eaf0d]
***EXTI9_5_IRQHandler() [#t5623178]
void EXTI9_5_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line5) != RESET)
{
処理();
}
}
**EXTI割込み(ライン15-10) [#wc882e0e]
終了行:
[[FrontPage]]
*外部割込み/イベントコントローラ(EXTI) [#hccbc89a]
各GPIOの0はEXTIの0に、GPIOの1はEXTIの1にといった具合に、1...
#contents
**クロックの供給とGPIOの初期化 [#l304b88c]
/* Enable Button GPIO clock */
RCC_APB2PeriphClockCmd(GPIOX_RCC | RCC_APB2Periph_AFIO, ...
/* Configure Button pin as input floating */
GPIO_InitStructure.GPIO_Pin = OB_SW_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(OB_SW_PORT, &GPIO_InitStructure);
**EXTIとして使用するGPIOの指定 [#nfd9d55c]
GPIO_EXTILineConfig(GPIO_PortSourceGPIOx , GPIO_PinSourc...
:GPIO_PortSource|使用するGPIOポートをGPIO_PortSourceGPIO&...
:GPIO_PinSource|使用するGPIOピンを、GPIO_PinSource&color(...
**EXTIの初期化 [#q92979b5]
EXTI_InitStructure.EXTI_Line = EXTI_Line0;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
**NVICの設定 [#w2101e73]
NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0...
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
-NVIC_PriorityGroup_0から4の5個
-pre-emptionの数字が低いの方が優先順位が高い、例えば:0...
-pre-emptionは同じの場合、subpriorityの数字を確認する、小...
**EXTI割込み(ライン0-4) [#v8cf930c]
***EXTI0_IRQHandler() [#t2ccbc25]
void EXTI0_IRQHandler(void)
{
/* Clear the Key Button EXTI line pending bit */
EXTI_ClearITPendingBit(EXTI_Line0);
処理();
}
***EXTI_ClearITPendingBit(EXTI_Linex) [#tdea1be4]
-EXTI割込みの割込みペンディングビットをクリアします。
:EXTI_Linex|クリアする対象のEXTIラインをEXTI_Line&color(b...
**EXTI割込み(ライン5-9) [#c47eaf0d]
***EXTI9_5_IRQHandler() [#t5623178]
void EXTI9_5_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line5) != RESET)
{
処理();
}
}
**EXTI割込み(ライン15-10) [#wc882e0e]
ページ名: