iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 12
1
IoT

熟悉Arduino的Maker必看!30天帶你快速入門基於STM32嵌入式開發~系列 第 12

[Day 12]-【STM32系列】Interrupts 中斷處理應用篇(下)

[Day 9]-【STM32系列】GPIO應用篇- 7 segment led display這篇文章中我們介紹到7段顯示器的應用,但是在實際上撰寫多工掃描程式時CPU只能專注在掃描電路上,無法有多的時間去做其他事情,就等於我們無法同時偵測按鈕輸入、另一邊掃描電路,在偵測按鈕的同時,顯示器會停頓一下,可這不是我們要的結果,所以我們就剛好需要"中斷"這個東西來彌補我們的不足。

#include "main.h"
#include "stm32l0xx_hal.h"

unsigned char segs[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
unsigned char cnt[]={1,2,3,4};
int i,scnt=0;

void display(void){
	for(i=0;i<=3;i++){
	GPIOA->BRR=0xFF;
	GPIOB->BSRR=0x0F;
	GPIOA->BSRR = segs[cnt[i]];
	GPIOB->BRR = (1<<i);
	HAL_Delay(1);
	}
}

extern TIM_HandleTypeDef htim6;
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){
		display();
}

void mycodes(void){
	GPIOA->BRR=0xFF;
	GPIOB->BSRR=0x0F;
	HAL_TIM_Base_Start_IT(&htim6);
	while(1){
		//display();
		
	}
}

相關連結


結語

中斷真的是非常強大的東西!!!


上一篇
[Day 11]-【STM32系列】 Interrupts 中斷處理介紹篇(上)
下一篇
[Day 13]- 【教師節快樂啦!】感謝一路扶持引導我的各位老師!
系列文
熟悉Arduino的Maker必看!30天帶你快速入門基於STM32嵌入式開發~30

尚未有邦友留言

立即登入留言