RCC 설정용 구조체
함수 명
|
설명
|
RCC_ClkInitTypeDef
|
클럭의 초기 설정용 구조체
[DataType]
uint32_t ClockType : 설정할 클럭, 이 파라미터는RCC_System_Clock_Type 중의 값 이어야 함
uint32_t SYSCLKSource : 시스템 클럭으로 사용하는 소스, RCC_System_Clock_Source 중의 값 이어야 함
uint32_t AHBCLKVivider : AHB 클럭의 디바이더. RCC_AHB_Clock_Source 중의 값이어야 하고 AHB클럭은 시스템 클럭에 의해 동작됨
uint32_t APB1CLKDivider : APB1 클럭의 디바이더. RCC_APB1_APB2_Clock_Source 중의 값이어야 하고 APB1 클럭은 AHB 클럭에 의해 동작됨
uint32_t APB2CLKDivider : APB2 클럭의 디바이더. RCC_APB1_APB2_Clock_Source 중의 값이어야 하고 AHB 클럭에 의해 동작됨
|
RCC_PLLInitTypeDef
|
PLL의 초기 설정용 구조체
[DataType]
uint32_t PLLState : The new state of the PLL의 새로운 state. RCC_PLL_Config 중의 값이어야 함
uint32_t PLLSource : PLL 진입 클럭 소스. RCC_PLL_Clock_Source 중의 값이어야 함
uint32_t PLLMUL : PLL VCO input clock의 곱하기 값
RCCEx_ PLL_Multiplication_ Factor 중의 값이어야 함
|
RCC 초기화 및 초기화 해제 함수
함수 명
|
설명
|
HAL_RCC_ClockConfig
(RCC_ClkInitTypeDef * RCC_ClkInitStruct,
uint32_t Flatency)
|
CPU와 AHB, APB 버스의 클럭 동작조건을 설정해주는 함수
[Parameter]
RCC_ClkInitStruct : 동작조건 설정을 위한 RCC_ClkInitTypeDef 구조체형 변수
FLatency : FLASH 동작시간(Latency) 이 파라미터는 다음 중 1개 값 을 가짐
FLASH_LATENCY_0 : FLASH 0 Lateny cycle
FLASH_LATENCY_1 : FLASH 1 Lateny cycle
FLASH_LATENCY_2 : FLASH 2 Lateny cycle
|
HAL_RCC_OscConfig
(RCC_OscInitTypeDef * RCC_OscInitStruct)
|
RCC 동작조건 설정을 위한 RCC_OscInitTypeDef 구조체형 변수
|
HAL_RCC_DeInit()
|
RCC 클럭의 설정을 리셋 후의 디폴트 상태로 복귀시키는 함수
|
NVIC, SysTick 등의 동작조건을 설정하는 함수
함수 명
|
설명
|
HAL_NVIC_SetPriority
(IRQn_Type IRQn, uint32_t PreemptPriority,
uint32_t SubPriority)
|
인터럽트의 우선순위 설정
[Parameter]
IRQn : 외부 인터럽트의 번호
PreemptPriority : FLASH 동작시간(Latency) 이 파라미터는 다음 중 1개 값 을 가짐
FLASH_LATENCY_0 : FLASH 0 Lateny cycle
FLASH_LATENCY_1 : FLASH 1 Lateny cycle
FLASH_LATENCY_2 : FLASH 2 Lateny cycle
|
HAL_NVIC_SerPriority
Grouping
(uint32_t PriorityGroup)
|
인터럽트의 우선 순위 그룹(pre-emption priority, subpriority) 설정
[Parameter]
PriorityGroup : The Priority grouping 비트의 길이. 다음 중 1개의 값을 가짐
NVIC_PRIORITYGROUP_0 : pre-emption priority에 0비트, subpriority에 4비트 사용
NVIC_PRIORITYGROUP_1 : pre-emption priority에 1비트, subpriority에 3비트 사용
NVIC_PRIORITYGROUP_2 : pre-emption priority에 2비트, subpriority에 2비트 사용
NVIC_PRIORITYGROUP_3 : pre-emption priority에 3비트, subpriority에 1비트 사용
NVIC_PRIORITYGROUP_4 : pre-emption priority에 4비트, subpriority에 0비트 사용
[Return] : 없음
* NVIC_PriorityGroup_0을 선택하면 IRQ pre-emption의 사용이 불가능하며, 펜딩된 IRQ의 수선순위는 subpriority로만 결정
|
HAL_NVIC_EnableIRQ
(IRQn_Type IRQn)
|
IRQ 인터럽트를 활성화(Enable) 시킴
[Parameter]
IRQn : 외부 인터럽트(EXTI)의 번호
[Return] : 없음
|
HAL_NVIC_DisableIRQ
(IRQn_Type IRQn)
|
IRQ 인터럽트를 비활성화(Disable) 시킴
[Parameter]
IRQn : 외부 인터럽트(EXTI)의 번호
[Return] : 없음
|
HAL_SYSTICK_Config
(uint32_t TicksNumb)
|
시스템 타이머와 관련 인터럽트를 초기화하고 Sysmtem Tick 타이머의 동작을 시작
[Parameter]
TicksNumb : 두 개의 인터럽트 간의 tick의 ticks Number 설정
[Return] :
0 : Function succeeded
1 : Function failed
|
HAL_NVIC_
SetPendingIRQ
(IRQn_Type IRQn)
|
외부 인터럽트의 펜딩 비트를 1로 설정
[Parameter]
IRQn : 외부 인터럽트(EXTI)의 번호
[Return] : 없음
* NVIC_PriorityGroup_0을 선택하면 IRQ pre-emption의 사용이 불가능하며, 펜딩된 IRQ의 수선순위는 subpriority로만 결정
|
HAL_NVIC_
GetPendingIRQ
(IRQn_Type IRQn)
|
펜딩 인터럽트를 읽어옴
[Parameter]
IRQn : 외부 인터럽트(EXTI)의 번호
[Return] :
0 : 인터럽트가 펜딩되어 있지 않음
1: 인터럽트가 펜딩됨
|
HAL_NVIC_
ClearPendingIRQ
(IRQn_Type IRQn)
|
외부 인터럽트의 펜딩 비트를 클리어
[Parameter]
IRQn : 외부 인터럽트(EXTI)의 번호
[Return] : 없음
|
HAL_NVIC_GetActive
(IRQn_Type IRQn)
|
액티브 인터럽트를 읽어옴
[Parameter]
IRQn : 외부 인터럽트(EXTI)의 번호
[Return] :
0 : 인터럽트가 펜딩되어 있지 않음
1: 인터럽트가 펜딩됨
|
HAL_SYSTICK_
CLKSourceConfig
(uint32_t CLKSource)
|
SysTick 클럭 소스를 설정
[Parameter]
CLKSource : SysTick 클럭 소르를 지정 이 파라미터는 다음 중 하나의 값을 가짐
SYSTICK_CLKSOURCE_HCLK_DIV8 : AHB Clock을 8로 나눈 값을 클럭 소스로 사용
SYSTICK_CLKSOURCE_HCLK : AHB Clock을 클럭 소스로 사용
[Return] : 없음
|
HAL_SYSTICK_Callback
(void)
|
SYSTICK 콜백 함수
[Return] : 없음
|
HAL_SYSTICK_
IRQHandler
SYS(void)
|
SYSTICK 인터럽트를 처리하는 IRQ 함수
[Return] : 없음
|
'Embedded > STM32' 카테고리의 다른 글
[STM32] Timer (0) | 2022.11.12 |
---|---|
[STM32] ADC(Analog Digital Converter) (0) | 2022.11.12 |
[STM32] DAC(Digital Analog Convertor) (2) | 2022.11.12 |
[STM32] UART, USART (4) | 2022.11.12 |