ex02.2_SW - withrobot/myCortex-STM32F4 GitHub Wiki
๊ฐ์
SW ์์ ๋ STM32 MCU์ GPIO ํ์ ์ ๋ ฅ ๋ชจ๋๋ก ์ด์ฉํ๋ ์๋ฅผ ๋ค๋ฃจ๊ณ ์์ต๋๋ค. myCortex-STM32F4 ๋ณด๋์ ์ฅ์ฐฉ๋ ์ค์์น๋ค์ ๋ถํธ์ ๋ฆฌ์ ์ค์์น๋ก ์ผ๋ฐ GPIO์ ์ฐ๊ฒฐ๋ ๊ฒ์ ์๋๋๋ค. ๋ณธ ์์ ๋ฅผ ์คํํ๊ธฐ ์ํด์๋ Switch ๋๋ผ์ด๋ฒ์์ ์๋ดํ๋ ๋ฐ์ ๊ฐ์ด ๋ณ๋์ ์ค์์น ํ๋ก๋ฅผ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค.
๊ด๋ จ Peripheral
๊ด๋ จ Driver
์์ค ์ดํด๋ณด๊ธฐ
main.c ํ์ผ ํ๋๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
7 line:
#include "stm32f4xx.h"
๊ธฐ๋ณธ์ ์ธ ํค๋ ํ์ผ์ includeํ๊ณ ์์ต๋๋ค. StdPeriph library๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ํ์์ ์ผ๋ก includeํด์ผ ํ๋ ํค๋ ํ์ผ์ ๋๋ค.
9 line:
#include "switch.h"
drv ํด๋์ ์๋ ์ค์์น ๋๋ผ์ด๋ฒ์ ํค๋ํ์ผ์ ๋๋ค. PA0์ PB10์ ํธ์ฌ ์ค์์น๊ฐ ์ฐ๊ฒฐ๋ ๊ฒ์ ๊ฐ์ ํ๊ณ ๋ง๋ค์ด์ง ๋๋ผ์ด๋ฒ์ ๋๋ค.
15 line:
SW_Init();
์ค์์น ๊ด๋ จ ํ๋ฆฌํ๋ด๋ค์ ์ด๊ธฐํํ๋ ํจ์๋ฅผ ํธ์ถํฉ๋๋ค. ์ค์์น๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์ต์ด ํ๋ฒ ์ด๊ธฐํ๊ฐ ์ด๋ฃจ์ด์ ธ์ผ ํฉ๋๋ค.
19 line:
// SW1(PE0)์ด ๋๋ ค์ ธ ์๋ ๋์ ๋ถ์์ LED๋ฅผ ์ผ ๋ค.
if (SW_1_IS_PUSHED())
LED_R_ON();
else
LED_R_OFF();
PA0์ ์ฐ๊ฒฐ๋ SW1์ด ๋๋ ค์ก๋์ง ํ์ธํฉ๋๋ค. ์ค์์น๊ฐ ๋๋ ค์ก๋ค๋ฉด ์ ์ LED๋ฅผ ์ผ๊ณ ์๋๋ผ๋ฉด ์ ์ LED๋ฅผ ๋๋๋ค. ๋ค์ ์ด์ด์ง๋ ์ฝ๋๋ SW2์ ๋ น์ LED๋ฅผ ์ด์ฉํด ๋์ผํ ๋ก์ง์ ๊ตฌํํฉ๋๋ค.
์คํ ๋ฐฉ๋ฒ
ํ๋ก์ ํธ๋ฅผ ๋น๋ํด์ ๋ค์ด๋ก๋ ํฉ๋๋ค. Switch ๋๋ผ์ด๋ฒ์์ ์ค๋ช ํ ๋ฐ์ ๊ฐ์ด ์ค์์น ํ๋ก๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
PA0์ ์ฐ๊ฒฐ๋ ์ค์์น๋ฅผ ๋๋ฅด๊ณ ์๋ ๋์ ๋ณด๋์ ์ ์ LED๊ฐ ์ผ์ง๊ณ PB10์ ์ฐ๊ฒฐ๋ ์ค์์น๋ฅผ ๋๋ฅด๊ณ ์๋ ๋์ ๋ณด๋์ ๋ น์ LED๊ฐ ์ผ์ง๋ ๊ฒ์ ํ์ธํฉ๋๋ค.