Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- DHT11
- i2c 통신
- ring counter
- pwm
- Recursion
- Algorithm
- test bench
- BASYS3
- hc-sr04
- stop watch
- Pspice
- half adder
- ATMEGA128A
- Linked List
- D Flip Flop
- java
- FND
- LED
- dataflow modeling
- prescaling
- Edge Detector
- atmega 128a
- behavioral modeling
- gpio
- structural modeling
- KEYPAD
- verilog
- vivado
- uart 통신
- soc 설계
Archives
- Today
- Total
거북이처럼 천천히
STM32 (9월 12일, STM32 입문 - (1)) 본문
1. STM32 시작
- 오늘부터 STM32를 배우기 시작했기 때문에 STM32에 대한 게시글을 올리고자 한다.
- 먼저 제일 간단한 LED를 On 하는 것부터 차근차근 구현하고자 한다.
- 이를 위해 HAL 함수를 이용하여 구현하도록 하겠다.
2. STM32보드에 있는 LD2, LED를 1초마다 깜박이도록 만들자.
2.1. 1단계) 몇 번핀을 OUTPUT으로 설정해야하는가?
- ★★★★★★★★★★
Q) STM32보드상에 있는 LD2, LED를 On하기 위해서는 몇 번 핀을 OUTPUT으로 설정해야 하는가?
A) 이는 STM32 보드의 회로도를 보고, 어떤 핀이 LD2와 연결되었는가?를 살펴볼 필요가 있다.
- 위 STM32의 회로도를 통해 LD2, LED와 D13과 회로로 연결되어 있음을 확인 할 수 있다.
- 또한, 위 STM32의 핀들 중 PA5번 핀과 D13이 회로로 연결되어 있음을 확인할 수 있다.
- 이는 즉, PA5핀을 OUTPUT으로 설정함으로서 LD2, LED을 ON할 수 있음을 회로도를 통해 확인할 수 있다.
2.2. 2단계) STM32의 Pin configuration에서 PA5핀을 GPIO_OUTPUT으로 설정한다.
- 프로젝트에서 ioc 파일을 더블 클릭하면 Pin configuration 창을 볼 수 있다.
- PA5핀을 클릭 한 뒤, PA5핀을 GPIO_OUTPUT으로 설정한다.
- GPIO_OUTPUT으로 설정하면 PA5핀이 초록색으로 변한 것을 확인할 수 있다.
- GPIO 설정이 끝나면 Control + S를 눌러 설정 사항을 저장한다.
2.3. 3단계) 프로젝트의 main.c 파일에서 HAL 함수를 이용하여 PA5핀의 값을 수정한다.
- HAL 함수를 이용하여 PA5핀 값을 0.5초 동안 1을 출력하고, 0.5초 동안 0을 출력하도록 설계하였다.
- 이를 통해 STM 보드의 LD2, LED는 1초를 주기로 깜박꺼리게 된다.
- HAL_Delay 함수는 ms 단위로 Delay Time을 갖는다.
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, 1);
HAL_Delay(500); // 500ms
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, 0);
HAL_Delay(500); // 500ms
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
2.4. 코드 작성을 끝내면 Build Project한 뒤, Run한다.
- 아래 사진과 같이 해당 프로젝트를 Build 한 뒤, Run Project 한다.
2.5. 구현
'Embedded Programming (STM) > STM32F411RE' 카테고리의 다른 글
STM32 (9월 12일, STM32 입문 - (2)) (0) | 2024.09.12 |
---|