有人問
我使用EXIT喚醒芯片,沒什么沒有觸發(fā)中斷,芯片卻喚醒了?
Ⅰ寫在前面
使用STM8S開發(fā)過(guò)上面類似功能的朋友應(yīng)該會(huì)知道,STM8S的穩(wěn)定性不如STM32,特別是在低功耗時(shí),使用EXTI外部中斷喚醒,很容易受到干擾信號(hào)而喚醒。因此,這種情況需在硬件電路上多加考慮抗干擾的電路。
其次,就是注意軟件的上下拉配置,如果外部加了上拉或下拉電阻,不建議再配置成上拉或下拉;如果沒有,建議加上。要使其軟件穩(wěn)定,還得深入EXTI的功能。
ⅡEXTI基礎(chǔ)知識(shí)
STM8S的EXTI外部中斷歸屬于GPIO一類,只需要將其IO配置成外部中斷、使能全局中斷、在中斷入口函數(shù)添加相關(guān)的代碼即可。
開啟中斷功能
用戶可以在I/O引腳為輸入模式時(shí)通過(guò)設(shè)置Px_CR2寄存器的相應(yīng)位來(lái)配置某個(gè)I/O作為外部輸入中斷模式。在該配置下, I/O引腳上的一個(gè)信號(hào)沿或是低電平會(huì)產(chǎn)生一個(gè)中斷請(qǐng)求。
在EXTI_CR[2:1]寄存器中對(duì)于每一個(gè)中斷向量都可以獨(dú)立編程為上升沿或下降沿觸發(fā)。
外部中斷只有在對(duì)應(yīng)I/O口被設(shè)置為輸入模式下才有效。
屏蔽中斷功能
可以通過(guò)對(duì)Px_CR2寄存器的相應(yīng)位進(jìn)行編程來(lái)單獨(dú)使能/關(guān)閉外部中斷功能。復(fù)位后外部中斷是關(guān)閉的。
提示:EXTI外部中斷只有在IO輸入模式下才有效,配置才輸出模式,不能正常由外部觸發(fā)中斷。
Ⅲ軟件工程源代碼
1.關(guān)于工程
本文提供的工程代碼是基于前面軟件工程“STM8S-A04_UART基本收發(fā)數(shù)據(jù)”增加EXTI外部中斷修改而來(lái)。初學(xué)的朋友可以參看我前面對(duì)應(yīng)的基礎(chǔ)文章,那些文章講的比較詳細(xì)。
2.EXTI引腳配置
我們尚且定義為按鍵KEY,浮動(dòng)輸入,中斷模式。
#define KEY_GPIO_PORT GPIOD
#define KEY_GPIO_PIN GPIO_PIN_2
GPIO_Init(KEY_GPIO_PORT, (GPIO_Pin_TypeDef)KEY_GPIO_PIN, GPIO_MODE_IN_FL_IT);
3.EXTI中斷配置
void EXTI_Configuration(void)
{
EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOD, EXTI_SENSITIVITY_FALL_ONLY);
EXTI_SetTLISensitivity(EXTI_TLISENSITIVITY_FALL_ONLY);
}
這個(gè)地方配置成下降沿中斷,端口需對(duì)應(yīng)引腳的端口。
4.中斷入口函數(shù)
#define KEY_READ GPIO_ReadInputPin(KEY_GPIO_PORT, KEY_GPIO_PIN)
INTERRUPT_HANDLER(EXTI_PORTD_IRQHandler, 6)
{
if(RESET == KEY_READ)
{
IT_Delay(50); //延時(shí)消抖
if(RESET == KEY_READ) //確認(rèn)按下
{
LED_REVERSE; //改變LED狀態(tài)
}
}
}
提示:我們使用的GPIOD,入口需要對(duì)應(yīng)。
Ⅳ下載
STM8S資料:
http://pan.baidu.com/s/1o7Tb9Yq
軟件源代碼工程兩版本(STM8S-A09_EXTI外部中斷):
http://pan.baidu.com/s/1c2EcRo0
-
EXIT圖
+關(guān)注
關(guān)注
0文章
4瀏覽量
7150 -
STM8S
+關(guān)注
關(guān)注
16文章
149瀏覽量
32669
發(fā)布評(píng)論請(qǐng)先 登錄
編譯 MPC5775K 的外部中斷時(shí)遇到的錯(cuò)誤如何解決?
STM8S207xx/STM8S208xx:高性能8位MCU的深度剖析
CW32F030CxTx外部中斷
串口中斷和定時(shí)中斷,外部中斷在一起如何調(diào)用?
瑞薩RA系列FSP庫(kù)開發(fā)實(shí)戰(zhàn)指南之DTC外部中斷觸發(fā)傳輸實(shí)驗(yàn)
在CW32F030 MCU上設(shè)置外部中斷和RTC喚醒條件的示例
RVMCU課堂「12」: 手把手教你玩轉(zhuǎn)RVSTAR—外部中斷篇
瑞薩RA系列MCU的外部引腳中斷詳解
關(guān)于江協(xié)科技的中斷實(shí)驗(yàn)
第六章 外部中斷
極海APM32F003觸發(fā)NMI中斷的解決方案
STM8S_009_ EXTI外部中斷
評(píng)論