NGẮT NGOÀI STM32 MBED
PHẦN 1 : NGẮT NGOÀI LÀ GÌ ?
- Khi chương trình hoạt động có ngắt xảy ra thì chương trình sẽ dừng lại, thực hiện chương trình ngắt, sau khi hoạt động chương trình ngắt, Chương trình sẽ quay lại chương trình chính và thực hiện tiếp.
Hầu như những chân STM32 Có thể cấu hình ngắt ngoài ( Ngắt từ nút nhấn GPIO).
InterruptIn - Trigger an event when a digital input pin changes.
#include "mbed.h"
InterruptIn KEY1(PA_1); //Khai báo một ngõ vào ngắt tại chân PA_1 và gán là KEY1
DigitalOut LED01(PD_2); //Khai báo một ngõ ra tại chân PD_2 và gán tên LED01
DigitalOut flash01(PC_13); //Khai báo một ngõ ra tại chân PC_13 và gán tên flash
void ISR1() { //Chương trình ngắt thực thi ở đây
LED01 = !LED01; //khi có sường lên tại chân KEY1, chương trình chính sẽ
} //thực hiện xong câu lênh đang thực thi và tạm dừng để
//nhảy tới đây và thực hiện, sau đó sẽ nhảy quay trở lại
//đoạn chương trình chính để thực hiện tiếp
int main() {
KEY1.mode(PullUp); //Cho phép trở kéo lên tại chân KEY1
KEY1.rise(&ISR1); // Gán địa chỉ hàm ngắt ISR, khai báo ngắt sường lên
while(1) { // continuous loop, ready to be interrupted
flash01 = !flash01; //Đảo trạng thái logic tại chân flash (nhấp nháy LED)
wait(1); //đợi 1s
}
}