도로 STM32 학습 기능 --HAL_Init

 

기능 정의 :

1 HAL_StatusTypeDef HAL_Init ( 공극 )
  {
 3    / * 구성 플래시 인출, 명령 캐시, 데이터 캐시 * /  
4  의 #if (INSTRUCTION_CACHE_ENABLE = 0U!)
 5     __HAL_FLASH_INSTRUCTION_CACHE_ENABLE ();
6  #endif 다음 / * * INSTRUCTION_CACHE_ENABLE /
 7  
8  의 #if (DATA_CACHE_ENABLE = 0U!)
 9     __HAL_FLASH_DATA_CACHE_ENABLE ();
10  #endif 다음 / DATA_CACHE_ENABLE * * /
 11  
(12)  의 #if (PREFETCH_ENABLE = 0U!)
 13    __HAL_FLASH_PREFETCH_BUFFER_ENABLE ();
(14) #endif 다음 / PREFETCH_ENABLE * * /
 15  
16    / * 설정 인터럽트 그룹 우선 * / 
17    HAL_NVIC_SetPriorityGrouping (NVIC_PRIORITYGROUP_4);
18  
19    / * 타임베이스 소스로 systick 사용하고 (재설정 HSI 후 기본 클럭)을 1ms의 진드기를 구성 * / 
20    HAL_InitTick (TICK_INT_PRIORITY);
21    
(22)    / * 저레벨 하드웨어 초기화 * / 
23    HAL_MspInit ();
24    
(25)    / * 리턴 기능 상태 * / 
26    리턴 HAL_OK;
27 }

1. 구성 플래시 프리 페치, 명령어 캐시, 데이터 캐시

1    / * 구성 플래시 인출, 명령 캐시, 데이터 캐시 * /  
2  의 #if (! = INSTRUCTION_CACHE_ENABLE 0U)
 3     __HAL_FLASH_INSTRUCTION_CACHE_ENABLE ();
4  #endif 다음 / * * INSTRUCTION_CACHE_ENABLE /
 5  
6  의 #if (DATA_CACHE_ENABLE = 0U!)
 7     __HAL_FLASH_DATA_CACHE_ENABLE ();
8  #endif 다음 / * * DATA_CACHE_ENABLE /
 9  
10  의 #if (PREFETCH_ENABLE = 0U!)
 11    __HAL_FLASH_PREFETCH_BUFFER_ENABLE ();
12  #endif 다음 / PREFETCH_ENABLE * * /

2. 인터럽트의 우선 순위 그룹화

1    / * 설정 인터럽트 그룹 우선 순위 * / 
2    HAL_NVIC_SetPriorityGrouping (NVIC_PRIORITYGROUP_4);

 

STM32F429은 분리 인터럽트 . 5 개 그룹, 그룹 0-4 . 패킷이 제공된다 SCB-> AIRCR 등록 bit10 ~ (8)을 정의한다. 인터럽트 우선 순위는 그룹 0에 응답하여, 네 선점 우선 순위를 나타내는 4이다.

 

 

 3. Systick는 "stm32f4xx_hal_conf.h"파일에 정의 된 우선 순위, TICK_INT_PRIORITY 매개 변수를 중단, 기본 값은 0x0F의 가장 낮은 우선 순위는

1    / * 타임베이스 소스로 systick 사용하고 (재설정 HSI 후 기본 클럭)을 1ms의 진드기를 구성 * / 
2    HAL_InitTick (TICK_INT_PRIORITY);

약한 함수로 정의되는 제 수행 MSP 콜백 함수는 사용자 파일로 구현 될 수있다

1    / * 저레벨 하드웨어 초기화 * / 
2    HAL_MspInit ();

 

추천

출처www.cnblogs.com/sysedoc/p/11576776.html