728x90
반응형
1. 회로도
PC0 : 인터럽트 0
PC1 : 인터럽트 1
PE3 : 출력
PE4 : 출력
테스트를 LED를 항상 켜져 있다가 외부키 가 눌리면 OFF 시키도록 하려고 합니다
2. STM32CUBE 설정
NVIC 쪽 Enabled를 체크해야 아래와 같은 소스가 자동으로 만들어집니다.
이 부분이 인터럽트 처리 함수 입니다.
3. 소스
main.c
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_4,GPIO_PIN_SET);
while (1)
{
}
/* USER CODE END 3 */
}
stn32f1xxx_it.c
void EXTI0_IRQHandler(void)
{
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3,GPIO_PIN_RESET);
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0);
}
void EXTI1_IRQHandler(void)
{
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_4,GPIO_PIN_RESET);
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_1);
}
4. 관련함수
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
}
5. 추가
EXTI를 EVENT모드로 설정할 경우 WFE명령어로 Sleep Mode에 진입한 MCU를 깨우는 용도로 사용됩니다.
관련 : https://www.plainy.co.kr/bbs/board.php?bo_table=stm32_lecture&wr_id=16
인터럽트 안에서 HAL_Delay를 쓰려면 0순위로 선언하면 안됨!!!
728x90
반응형
'공부 > STM32F1' 카테고리의 다른 글
10.[stm32f103][hal] 타이머 (1) _ 개요 (0) | 2017.09.22 |
---|---|
9.[stm32f103][hal] RCC_MCO 로 Clock 확인하기 (0) | 2017.09.20 |
6.[stm32f103][hal] printf 사용하기 (0) | 2017.09.12 |
5.[stm32f103][hal]usart1 polling (0) | 2017.09.12 |
4.[stm32f103][hal] Fatal error: ST-LINK, No MCU device found (0) | 2017.09.11 |