
PC13이 low가 되어야 전류가 흐름 = LED on
PC13이 High면 전류가 흐르지 않음 = LED off

high 상태로 설정
= PC13이 High면 LED가 OFF된 상태가 초기값이다
typedef enum
{
GPIO_PIN_RESET = 0u,
GPIO_PIN_SET // set 상태 = 1
} GPIO_PinState;
Push Pull, Open Drain 이 있다

BJT회로, MOSFET회로 두 경우가 있다

전류는 높은 전압에서 낮은 전압으로 흐름

단순히 gnd를 열었다 닫았다 하는 동작

MCU에서 3.3V를 사용하는데
5V로 작동하는 칩을 사용할 경우 사용한다
LED를 사용하기에는 맞지 않음

풀업 : 위로 끌어당기다, 기본값 1
풀다운 : 아래로 끌어당기다, 기본값 0
디지털 신호는 high or low
0,1도 되지만 실제는 그렇지 않은 경우가 많음
정전기, 잡음에 의해 오류가 생길 수 있음

저항을 전원 앞에 붙여줌
저항으로 인해 input pin은 high 상태 = 풀업 상태
* 주로 4.7k ~ 10k 저항
i2c같은 경우 4.7k를 붙이고
많은 i2c를 연결하면 2.7k로 낮추기도 함
-> 데이터 시트 확인해서 설정
스위치를 닫으면 gnd로 전류가 흐름 -> input이 low

스위치를 닫으면 과전류가 흘러서 쇼트상태

스위치를 닫으면 0v가 되지만 스위치를 열면 floating 상태여서 충분하게 high가 될 수 없음
저항을 gnd 쪽에 붙임 -> input pin 이 low 상태
스위치를 닫으면 저항 때문에 input이 high가 된다

일반적으로 풀다운 보다는 풀업이 노이즈나 충격에 강하기 때문에 풀업을 사용한다
풀업 / 풀다운은 입력 또는 오픈 드레인 구성에서만 유효하다
-> 오픈드레인일때 외부회로와 같이 사용하기 때문에 아웃풋에서 의미가 생김

gnd쪽에 풀다운 저항이 없음 -> 풀업상태이다
