기본
HAL_PPP_Process()
인터럽트 모드에서 프로세서를 시작하는 함수
사용자의 코드에서 이 함수를 호출하면 프로세스가 인터럽트 모드에서 시작
HAL_PPP_IRQHandler()
PPP 주변장치의 인터럽트 핸들러
인터럽트 모드에서 프로세스를 시작하기 전에 stm32f4xx_it.c 파일에서 해당되는 인터럽트 핸들러가 코딩되어 있어야함.
__weak HAL_PPP_ProcessCpltCallback()
작업 완료시 호출되는 콜백 함수
콜백 함수는 드라이버 내에서 약함 함수(weak function)으로 선언되어 있음
사용자가 유저 작성 코드 내에서 콜백 함수를 다시 선언하는 것이 가능
즉, 사용자가 콜백 함수 내에 원하는 작업을 코딩하여 작성하는 것이 가능
__weak HAL_PPP_ProcessErrorCallback()
작업시 에러가 발생하면 호출되는 콜백 함수
HAL_PPP_Process_DMA()
DMA 모드에서 프로세서를 시작하는 함수
사용자의 코드에서 이 함수를 호출하면 프로세스가 DMA 모드에서 시작
HAL_PPP_DMA_IRQHandler()
PPP 주변장치의 DMA 핸들러
인터럽트 모드에서 프로세스를 시작하기 전에 stm32f4xx_it.c 파일에서 해당되는 인터럽트 핸들러가 코딩되어 있어야함.
__weak HAL_PPP_ProcessCpltCallback()
작업 완료시 호출되는 콜백 함수
__weak HAL_PPP_ErrorCpltCallback()
작업시 에러가 발생하면 호출되는 콜백 함수
GPIO
MCU의 초기화를 위한 함수
HAL_Init()
MCU의 초기화를 위한 함수
전원이 on되거나 reset 후에 MCU(STM32F429)를 초기화 하기 위한 함수
이 함수를 실행하면 MCU가 reset 이후의 default 값으로 초기화
HAL 라이브러리에서 제공하는 함수
GPIO 구동용 함수
(1) 초기화(Initialization) 및 초기화 해제(De-Initialization)용 함수
HAL_GPIO_Init()
GPIO를 설정 조건에 맞추어 초기화한다.
HAL_GPIO_DeInit()
GPIO를 reset 이후 디폴트 값으로 설정(초기화 해제)한다.
(2) 입출력용 함수
HAL_GPIO_ReadPin()
GPIO의 지정된 핀의 값을 읽어온다.
HAL_GPIO_WritePin()
GPIO의 지정된 핀을 0 또는 1로 설정한다.
HAL_GPIO_TogglePin()
GPIO의 지정된 핀의 값을 토글(toggle) 시킨다.
HAL_GPIO_LockPin()
GPIO의 지정된 핀의 설정 값을 변경 금지(lock) 시킨다.
(3) 인터럽트 처리용 함수
HAL_GPIO_EXTI_IRQHandler()
EXTI 인터럽트의 핸들러 함수
HAL_GPIO_EXTI_Callback()
EXTI 인터럽트를 처리하기 위한 콜백 함수.
이 함수는 EXTI 핸들러 함수 EXTIx_IRQHandler() 내에서 사용된다.
EXTI
HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
GPIO에서 발생하는 EXTI 인터럽트 처리를 위한 인터럽트 핸들러 함수
파라미터
GPIO_Pin : GPIO pin을 지정하며 GPIO_PIN_0 ~ GPIO_PIN_15 사이의 값을 가질 수 있음
리턴 값 : 없음
HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
EXTI 인터럽트 처리하기 위한 콜백(Callback)함수
파라미터
GPIO_Pin : GPIO pin을 지정하며 GPIO_PIN_0 ~ GPIO_PIN_15 사이의 값을 가질 수 있음
리턴 값 : 없음
UART
HAL 함수
1) UART의 초기화 및 설정용 함수
HAL_UART_Init(), HAL_UART_DeInit() : UART의 초기화, 초기화 해제
HAL_UART_MspInit(), HAL_UART_MspDeInit() : UART Msp의 초기화, 초기화 해제
2) UART의 입출력용 함수
HAL_UART_Transmit() : 블로킹 모드(폴링)로 데이터 송신
HAL_UART_Receive() : 블로킹 모드(폴링)로 데이터 수신
HAL_UART_Transmit_IT() : 비 블로킹(인터럽트) 모드로 데이터 송신
HAL_UART_Receive_IT() : 비 블로킹(인터럽트) 모드로 데이터 수신
HAL_UART_Transmit_DMA() : DMA를 사용하여 비 블로킹 모드로 데이터 송신
HAL_UART_Receive_DMA() : DMA를 사용하여 비 블로킹 모드로 데이터 수신
HAL_UART_IRQHandler() : UART 인터럽트 처리 핸들러 함수
콜백 함수(Callback Function)
- 콜백 함수는 다음과 같으며 반드시 사용자 프로그램에서 작성 되어야함
HAL_UART_TxCpltCallback()
HAL_UART_RxCpltCallback()
ADC
DMA 방식
HAL_ADC_Start_DMA(&hadc1, (uint8_t *)buf, 1);
ADC의 초기화, 초기화 해제
HAL_ADC_Init(), HAL_ADC_DeInit()
ADC Msp의 초기화, 초기화 해제
HAL_ADC_MspInit(), HAL_ADC_MspDeInit()
ADC 변환 시작, 정지
HAL_ADC_Start(), HAL_ADC_Stop()
ADC 폴링 모드
HAL_ADC_PollForConversion(), HAL_ADC_PollForEvent()
ADC 인터럽트 시작, 정지
HAL_ADC_Start_IT(), HAL_ADC_Stop_IT()
ADC DMA 시작, 정지
HAL_ADC_Start_DMA(), HAL_ADC_Stop_DMA()
ADC 인터럽트 핸들러
HAL_ADC_IRQHandler()
ADC 변환이 완료되면 콜백
HAL_ADC_ConvCpltCallback()
ADC 변환 결과 값을 반환
HAL_ADC_GetValue()
ADC 채널 설정
HAL_ADC_ConfigChannel()
DAC
(1) 초기화(Initialization) 및 초기화 해제(De-Initialization) 함수
HAL_DAC_Init() DAC의 초기화
HAL_DAC_DeInit() DAC의 초기화 해제
HAL_DAC_MspInit() DAC Msp의 초기화
HAL_DAC_MspDeInit() DAC Msp의 초기화 해제
(2) 입출력용 함수
HAL_DAC_Start(), HAL_DAC_Stop() DAC 변환 시작, 정지
HAL_DAC_Start_DMA(), HAL_DAC_Stop_DMA() DAC 변환 시작 및 DMA 사용, 변환 정지 및 DMA 사용 정지
HAL_DAC_GetValue()
DAC 변환 결과 값을 반환
(3) 주변장치 제어 함수
HAL_DAC_ConfigChannel()
DAC 채널 설정
HAL_DAC_SetValue()
변환할 데이터 값을 설정
(4) 주변장치 상태 함수
HAL_DAC_GetState()
DAC의 상태를 확인
HAL_DAC_GetError()
DAC의 에러를 확인
TIM
1) 타임 베이스 함수 (Time Base Function)
- 타이머의 기본적인 기능인 타이머/카운터 동작을 제어하는 함수
HAL_TIM_Base_Init(), HAL_TIM_Base_DeInit()
Time base의 초기화, 초기화 해제
HAL_TIM_Base_MspInit(), HAL_TIM_Base_MspDeInit()
Time base Msp의 초기화, 초기화 해제
HAL_TIM_Base_Start(), HAL_TIM_Base_Stop()
Time base의 동작을 시작, 정지
HAL_TIM_Base_Start_IT(), HAL_TIM_Base_Stop_IT()
Time base의 동작을 시작하고 인터럽트 발생을 활성화, 비활성화
HAL_TIM_Base_Start_DMA()
Time base의 동작을 시작하고 DMA 전송을 활성화
HAL_TIM_Base_Stop_DMA()
Time base의 동작을 정지하고 DMA 전송을 비활성화
2) 타임 출력 비교 함수 (Time Output Compare Function)
- 타이머의 출력 비교 동작을 제어하는 함수
HAL_TIM_OC_Init(), HAL_TIM_OC_DeIint()
Time Output Compare의 초기화, 초기화 해제
HAL_TIM_OC_MspInit(), HAL_TIM_OC_MspDeIint()
Time Output Compare MSP의 초기화, 초기화 해제
HAL_TIM_OC_Start(), HAL_TIM_OC_Stop()
Time Output Compare의 동작을 시작, 정지
HAL_TIM_OC_Sart_IT()
Time Output Compare의 동작을 시작하고 인터럽트 발생을 활성화
HAL_TIM_OC_Stop_IT()
Time Output Compare의 동작을 정지하고 인터럽트 발생을 비활성화
HAL_TIM_OC_Start_DMA()
Time Output Compare의 동작을 시작하고 DMA 전송을 활성화
HAL_TIM_OC_Stop_DMA()
Time Output Compare의 동작을 정지하고 DMA 전송을 비활성화
3) 타임 PWM 함수 (Time PWM Function)
- 타이머의 PWM 동작을 제어하는 함수
HAL_TIM_PWM_Init(), HAL_TIM_PWM_DeIint()
Time PWM의 초기화, 초기화 해제
HAL_TIM_PWM_MspInit(), HAL_TIM_PWM_MspDeIint()
Time PWM MSP 초기화, 초기화 해제
HAL_TIM_PWM_Start(), HAL_TIM_PWM_Stop()
Time PWM을 시작, 정지
HAL_TIM_PWM_Start_IT()
Time PWM을 시작하고 인터럽트를 활성화
HAL_TIM_PWM_Stop_IT()
Time PWM을 중지하고 인터럽트를 비활성화
HAL_TIM_PWM_Start_DMA()
Time PWM의 동작을 시작하고 DMA 전송을 활성화
HAL_TIM_PWM_Stop_DMA()
Time PWM의 동작을 정지하고 DMA 전송을 비활성화
4) 타임 입력 캡쳐 함수 (Time Input Capture Function)
- 타이머의 Input Capture 동작을 제어하는 함수
HAL_TIM_IC_Init(), HAL_TIM_IC_DeIint()
Time Input Capture의 초기화, 초기화 해제
HAL_TIM_IC_MspInit(), HAL_TIM_IC_MspDeIint()
Time Input Capture MSP의 초기화, 초기화 해제
HAL_TIM_IC_Start(), HAL_TIM_IC_Stop()
Time Input Capture를 시작, 정지
HAL_TIM_IC_Start_IT()
Time Input Capture를 시작하고 인터럽트를 활성화
HAL_TIM_IC_Stop_IT()
Time Input Capture를 정지하고 인터럽트를 활성화
HAL_TIM_IC_Start_DMA()
Time Input Capture를 시작하고 DMA 전송을 활성화
HAL_TIM_IC_Stop_DMA()
Time Input Capture를 정지하고 DMA 전송을 비활성화
5) 타임 원펄스 캡쳐 함수 (Time One Pulse Function)
- 타이머의 원펄스 동작을 제어하는 함수
HAL_TIM_OnePulse_Init(), HAL_TIM_OnePulse_DeInit()
Time One Pulse의 초기화, 초기화 해제
HAL_TIM_OnePulse_MspInit(), HAL_TIM_OnePulse_MspDeInit()
Time One Pulse의 Msp 초기화, 초기화 해제
HAL_TIM_OnePulse_Start()
Time One Pulse를 시작함
HAL_TIM_OnePulse_Stop()
Time One Pulse를 정지함
HAL_TIM_OnePulse_Start_It()
Time One Pulse를 시작하고 인터럽트를 활성화
HAL_TIM_OnePulse_Stop_It()
Time One Pulse를 정지하고 인터럽트를 비활성화
HAL_TIM_OnePulse_Start_DMA()
Time One Pulse를 시작하고 DMA 전송을 활성화
HAL_TIM_OnePulse_Stop_DMA()
Time One Pulse를 정지하고 DMA 전송을 비활성화
6) 타임 엔코더 함수 (Time Encoder Function)
- 타이머의 엔코더 동작을 제어하는 함수
HAL_TIM_Encoder_Init(), HAL_TIM_Encoder_DeInit()
Time Encoder의 초기화, 초기화 해제
HAL_TIM_Encoder_MspInit(), HAL_TIM_Encoder_MspDeInit()
Time Encoder의 MSP의 초기화, 초기화 해제
HAL_TIM_Encoder_Start()
Time Encoder의 시작
HAL_TIM_Encoder_Stop()
Time Encoder의 정지
HAL_TIM_Encoder_Start_IT()
Time Encoder를 시작하고 인터럽트를 활성화
HAL_TIM_Encoder_Stop_IT()
Time Encoder를 정지하고 인터럽트를 비활성화
HAL_TIM_Encoder_Start_DMA()
Time Encoder를 시작하고 DMA를 활성화
HAL_TIM_Encoder_Stop_DMA()
Time Encoder를 정지하고 DMA를 비활성화
7) IRQ 핸들러 함수 (IRQ Handler Management)
- 타이머의 IRQ 핸들러 동작을 관리(제어)하는 함수
HAL_TIM_IRQHandler()
8) 주변장치 제어 함수 (Peripheral Control Function)
- 타이머의 주변장치의 동작을 제어하는 함수
- OC, PWM, IC, One Pulse 모드의 입출력 채널 설정
HAL_TIM_OC_ConfigChannel()
입출력 채널을 OC 모드로 설정
HAL_TIM_IC_ConfigChannel()
입출력 채널을 IC 모드로 설정
HAL_TIM_PWM_ConfigChannel()
입출력 채널을 PWM 모드로 설정
HAL_TIM_OnePulse_ConfigChannel()
입출력 채널을 One Pulse 모드로 설정
- 클럭 Complementary Channel, 브레이크 등의 설정
HAL_TIM_ConfigClockSource()
HAL_TIM_GenerateEvent()
HAL_TIM_ConfigOCrefClear()
HAL_TIM_ConfigTI1Input()
HAL_TIM_ReadCapturedValue()
- Master와 Slave 동기화 설정
HAL_TIM_SlaveConfigSynchronization()
HAL_TIM_SlaveConfigSynchronization_IT()
- DMA Burst Mode의 설정
HAL_TIM_DMABurst_WriteStart()
HAL_TIM_DMABurst_WriteStop()
HAL_TIM_DMABurst_ReadSart()
HAL_TIM_DMABurst_ReadStop()
9) 타이머 콜백 함수 (TIM Callbacks Function)
- 타이머의 관련 인터럽트 발생시에 호출되는 콜백 함수
HAL_TIM_PeriodElapsedCallback()
Timer Period elapsed 콜백 함수
HAL_TIM_OC_DelayElapsedCallback()
Timer Output Compare 콜백 함수
HAL_TIM_IC_CaptureCallback()
Timer Input Capture 콜백 함수
HAL_TIM_PWM_PulseFinishedCallback()
Timer PWM pulse finished 콜백 함수
HAL_TIM_TriggerCallback()
Timer Trigger 콜백 함수
HAL_TIM_ErrorCallback()
Timer Error 콜백 함수
10) 주변장치 상태 함수 (Peripheral State Function)
- 실행중에 해당 주변장치의 상태와 데이터의 흐름 상태를 받아오는 함수
HAL_TIM_Base_GetState()
HAL_TIM_OC_GetState()
HAL_TIM_PWM_GetState()
HAL_TIM_IC_GetState()
HAL_TIM_OnePulse_GetState()
HAL_TIM_Encoder_GetState()
RTC
HAL_RTC_GetTIme(&hrtc, &sTime, RTC_FORMAT_BIN);
HAL_RTC_GetDate(&hrtc, &sDate, RTC_FORMAT_BIN);
PWM
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3);
I2C
HAL_I2C_IsDeviceReady(&hi2c1, i << 1, 1, 10)
HAL_I2C_Master_Transmit(&hi2c1, lcd_addr, data_arr, sizeof(data_arr), HAL_MAX_DELAY);
'Embedded > 1. STM32, Arduino' 카테고리의 다른 글
STM32 - RTC (Real Time Clock), Alarm을 통한 시간 및 알람 출력 (0) | 2024.06.20 |
---|---|
STM32 - PWM를 이용한 모터 제어 및 부저를 이용한 멜로디 생성 (0) | 2024.06.17 |
Clock Configuration, UART 글자 깨짐 현상 해결 방법 (0) | 2024.06.12 |
STM32 - Clock, Timer 구현 (SysTick, Timer 사용) (0) | 2024.06.11 |
STM32 - TIM 이론 (0) | 2024.06.11 |