728x90
반응형
개발환경
보드 : Nucleo-F103RB
CPU 칩셋 : STM32F103RB
CPU 설계 : ARM Cortex-M3
IDE : STM32CubeIDE
shematic 회로도
https://www.st.com/en/evaluation-tools/nucleo-f103rb.html#cad-resources
여기서 schematic을 다운받아보면 내장 장치가 물리적으로 몇번 핀에 연결되어있는지 확인할 수 있다.
내장 LED 켜기
1. 장치 연결에 대한 이해
- 보드
- shematic 회로도
두번재 LED인 LD2는 PA5 핀과 연결되어있다.
- 핀아웃 뷰
CubeIDE에서 핀아웃 뷰를 보면 기본값으로 PA5에 LD2 라벨링이 되어있다.
2. 코드 작성
핀아웃뷰를 generate하면 main.c 파일이 생긴다.
여기서 주의할 점은 USER CODE 주석 안에 코드를 작성해야한다.
/* USER CODE BEGIN 3 */
/* USER CODE END 3 */
왜냐하면 generate할때 이 주석 안에 있는 애들은 그대로 유지된 채 새로고침 되기 때문이다.
다른 곳에 쓰면, 내가 작성한 코드가 날라갈 수 있으니 주의해야한다.
LD2를 켜고 끄는 코드는 다음과 같다.
HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_RESET);
HAL_Delay(100);
HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_SET);
HAL_Delay(100);
3. 결과
외부 LED 켜기
1. 장치 연결에 대한 이해
- 보드와 shematic 회로도
- 보드
- 핀아웃 뷰
PC8 과 PC6에 GPIO를 설정해준다
- 프로젝트 매니저
핀아웃의 오른쪽에 있는 메뉴에서 코드 제너레이터를 다음과 같이 설정해주고 제너레이트하면 gpio.c가 생성된다.
gpio에 대한 정보가 담겨있고, 박스 친 부분엔 내가 설정해 둔 gpio 핀을 확인할 수 있다.
2. 코드 작성
gpio.c에서 코드를 가져와서 마지막 파라미터만 변경하여 LED를 껐다 킬 수 있다.
USER CODE 사이에 코드를 넣어준다.
HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_8, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_6, GPIO_PIN_SET);
HAL_Delay(100);
HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_8, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_6, GPIO_PIN_RESET);
HAL_Delay(100);
3. 결과
728x90
반응형
'임베디드' 카테고리의 다른 글
[GUI] Qt + SenseHat : 센스햇 조명등 GUI 어플리케이션 만들기 (0) | 2022.05.05 |
---|---|
[GUI] Qt와 QtDesingner 소개 (0) | 2022.05.03 |
[리눅스] 랜덤함수 rand(), srand(), time() (0) | 2022.04.30 |
[리눅스] 시그널 신호 보내기, WDT(Watchdog Timer) (0) | 2022.04.29 |
[라즈베리파이] 출입 인증 시스템 제작 (0) | 2022.04.28 |