STM32_Tutorial_09 - 8BitsCoding/RobotMentor GitHub Wiki
์ธ๋ถ์ธํฐ๋ฝํธ EXTI ๋?
์ธ๋ถ์ธํฐ๋ฝํธ๋ GPIO์ ์ ๊ธฐ์ ์ ํธ๊ฐ ๋ค์ด์ค๋ฉด ์ธ๋ถ MCU๋ก ์ธํฐ๋ฝํธ ์ ํธ๋ฅผ ๋ณด๋ด๋ ๋ฐฉ์์ ์๋ฏธํ๋ค.
์ด์ ์ Switch๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ํด๋ง๋ฐฉ์์ผ๋ก while๋ฌธ ๋ด์์ ์ฃผ๊ธฐ์ ์ผ๋ก GPIO๋ฅผ ๊ฒ์ฌํ๋ ๋ฐฉ์๋ณด๋ค MCU ๋ถํ๊ฐ ์ ๋ค๊ณ ํ ์ ์๋ค.
์ธํฐ๋ฝํธ๋ GPIO์ ์ ๊ธฐ์ ์ ํธ๊ฐ Low->High ํน์ High->Low๋ก ๋ณํ ์ MCU๋ก ์ธํฐ๋ฝํธ๊ฐ ์ค๋ ๋ฐฉ์์ ์๋ฏธํ๋ค.
CPU์ ํด๋ญ์๋ชจ๊ฐ ์์.
๊ฐ 0๋ฒ ํ์ ์ธํฐ๋ฝํธ 0์ ๋ฐ์ 1๋ฒ์ญ์ 1๋ฒ ์ธํฐ๋ฝํธ 15๋ฒ๊น์ง ์ญ์ฑ..
0~4๋ฒ๊น์ง ์ธํฐ๋ฝํธ๋ ๋ ๋ฆฝ์ ์ธ ์ธํฐ๋ฝํธ
5~9๋ฒ๊น์ง๋ ํ๋์ ์ธํฐ๋ฝํธ๋ก ๋ด๋ถ์์ ๋ช๋ฒ ํ์ ํตํด ๋ค์ด์๋์ง ํ์ธํด์ผํจ.
์ฝ๋๋ฅผ ๋ง๋ค์ด๋ณด์
CubeMX์ UserBnt๋ฅผ GPIO_EXIT์ผ๋ก
Configuration -> NVIC
์ธ๋ถ ์ธํฐ๋ฝํธ ํ์ฑํ
Configuration -> GPIO
Project -> Generate Code
์ฝ๋๋ฅผ ๋ถ์ํด๋ณด์.
// main
/* Initialize all configured peripherals */
MX_GPIO_Init();
// MX_GPIO_Init(); ๋ด๋ถ
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = USER_Btn_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(USER_Btn_GPIO_Port, &GPIO_InitStruct);
์ธํฐ๋ฝํธ๊ฐ ์ ์ ์ธ๋จ์ ์ ์ ์๋ค.
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin == GPIO_PIN_13)
{
// #define LD2_Pin GPIO_PIN_7
// #define LD2_GPIO_Port GPIOB
HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin);
}
else
{
}
}
HAL_GPIO_EXTI_Callback
๋ฅผ main์ ์ฌ ์ ์ํ์ฌ ์ฌ์ฉํ๋ฉด๋๋ค.