
왼쪽에서부터 순서대로
저장,빌드,디버그,실행버튼이다.
Core-Src-main.c 는 실제로 내가 STM32에 올라갈 프로그램을 짜는 파일이다.
코딩을 할때에도 규칙이 존재한다.

위와 같이
/* USER CODE BEGIN Includes */
/* USER CODE END Includes */
이런식으로 주석이 달려있다.
이 BEGIN-END 영역 안에서만 사용자가 코딩을 해야한다.
저 영역 밖에다가 코딩하면 전부 CubeMX가 코드 Generate 하는 과정에서 무시되버린다.
BEGIN-END 영역은 안의 내요 지우지 않도록 보존해주는 일종의 안전지대이다.
위의 약속을 꼭 지켜야되고 그런건 아니지만, 그냥 이런식으로 규약이 존재한다.

#include "stdio.h"
#incldue "string.h"
같은 include문을 넣어야한다.
typedef struct Books {
char title[30];
int book_id;
} Book;
같은 typedef 문을 넣어야한다.
#define sensor 6
같은 define 문을 넣어야한다.
#define Z Y+X*3
같은 define 문을 넣어야한다.
int count=0;
같은 변수 선언 및 초기화 코드를 넣어주면된다.

void init_myFunction(void);
처럼 내가 만들 함수의 선언부(프로토타입)을 넣어준다.
void My_LED_Blink(void)
{
HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);
HAL_Delay(500);
}
처럼 내가 만든 함수의 실제 구현부를 넣어준다.

아주 초기에 필요한 전역 변수 선언, 상수 정의, 외부 장치 초기값 세팅 코드를 넣어준다.
HAL_Init() 전이므로 HAL_Init()이 필요없는 코드만 넣을 수 있다.
시스템 전반 변수 초기화나 메모리 관련 작업 가능
아직 클럭 세팅 전이므로, 고속 타이머/통신 속도 관련 함수는 사용 X
이제 시스템 클럭이 세팅됨
관련 기능 넣을 수 있음
메인 루프(while(1)) 들어가기 전에 1회만 실행할 초기화 코드

이 부분은 아두이노에서 loop에 해당하는 부분이다.
즉, 주로 코딩할 부분이다.