강좌 시리즈 보러 가기
잡동사니 세상 :: stm32 레지스터 직접 접근 (소개) (tistory.com)
LED 다루는 방법
(이해한 내용을 기반으로 쉽게 설명했으니
원래 의미와 다소 차이가 있을 수 있다.)
일단 LED 켜는 것부터
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#include "stm32f10x.h"
void init_port() {
GPIO_InitTypeDef LED;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG, ENABLE);
LED.GPIO_Pin = 0x0004; //(2번 핀 사용 0b0000000000000100
LED.GPIO_Mode = GPIO_Mode_Out_PP; //Push Pull, Output
LED.GPIO_Speed = GPIO_Speed_50MHz; //GPIO 출력 속도(on, off 바뀌는 속도) 50MHZ로 설정
GPIO_Init(GPIOG, &LED); //GPIO 설정 끝 & 시작
}
//////////////////////////////////////////////////////////////////////////////////////////
int main(void) {
init_port(); //위에서 만든 함수 (LED 핀 설정 & 초기화 함수
GPIO_SetBits(GPIOG, GPIO_Pin_2); // GPIOG에서 2번 핀을 HIGH상태로 만든다.
};
|
cs |
LED 핀은 PG2번을 사용했다.
그랬기 때문에 GPIOG와 그에 관한 설정들만 했다.
2번 핀에 HIGH 신호를 보내는 코드이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#include "stm32f10x.h"
void init_port() {
GPIO_InitTypeDef LED;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG, ENABLE);
LED.GPIO_Pin = 0x0004; //(2번 핀 사용 0b0000000000000100
LED.GPIO_Mode = GPIO_Mode_Out_PP; //Push Pull, Output
LED.GPIO_Speed = GPIO_Speed_50MHZ; //GPIO 출력 속도(on, off 바뀌는 속도) 50MHZ로 설정
GPIO_Init(GPIOG, &LED); //GPIO 설정 끝 & 시작
}
//////////////////////////////////////////////////////////////////////////////////////////
int main(void) {
init_port(); //위에서 만든 함수 (LED 핀 설정 & 초기화 함수
GPIO_ResetBits(GPIOG, GPIO_Pin_2); // GPIOF에서 2번 핀을 LOW상태로 만든다.
};
|
cs |
2번 핀에 LOW신호를 보내는 코드이다.
위의 GPIO_SetBits를 GPIO_ResetBits으로 바꾼 것뿐이다.
|
|
결과
LED 끄기
|
|
결과
쉽게 설명하는 것이 목적이었기 때문에
실제 기능과 다른 것들이 있을 수 있다.
나의 식물일지 어플 보러 가기
https://pkr7098.tistory.com/155
'stm32 > 실전' 카테고리의 다른 글
엔코더 모터 제어 (2. 속도 계산) (4) | 2021.03.16 |
---|---|
엔코더 모터 제어 (1. 펄스및 위치 측정) (6) | 2021.03.04 |
엔코더 모터 제어 (0. 소개) (5) | 2021.02.28 |
02 쉬운 stm32 버튼 제어 (0) | 2018.11.20 |
stm32사용하기 LED & KEY (0) | 2018.10.26 |