내 목표는 상관없이 나는 그것이 대상으로 깜박 언제 프리스케일러 및 기간왜 STM32F7은 매 43 초마다 만 인터럽트합니까?
static TIM_HandleTypeDef s_TimerInstance = {
.Instance = TIM2,
};
void Hal::initTim()
{
__TIM2_CLK_ENABLE();
s_TimerInstance.Init.Prescaler = 96; // This does nothing
s_TimerInstance.Init.CounterMode = TIM_COUNTERMODE_UP;
s_TimerInstance.Init.Period = 26; // This does nothing
s_TimerInstance.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
HAL_TIM_Base_Init(&s_TimerInstance);
HAL_TIM_Base_Start_IT(&s_TimerInstance);
HAL_NVIC_SetPriority(TIM2_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(TIM2_IRQn);
}
extern "C" void TIM2_IRQHandler()
{
HAL_TIM_IRQHandler(&s_TimerInstance);
}
extern "C" void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
HAL_GPIO_TogglePin(GPIOI, GPIO_PIN_1); // Happens every 43 seconds for some reason
}
extern "C" void HAL_TIMEx_BreakCallback(TIM_HandleTypeDef *htim){}
extern "C" void HAL_TIMEx_CommutationCallback(TIM_HandleTypeDef *htim){}
로 설정 어떤 인터럽트 38KHZ이 없습니다와 LED를 전환 만하는 것입니다, LED가에 상관없이 모든 43초을 전환하지 무엇 프리스케일러와 기간은로 설정됩니다.
나는 뭔가를 놓치고 있어야하지만, 나는 그것을 이해할 수 없다. 도움이 될 수있는 인터럽트 경험이있는 사람은 누구입니까?
을, 하나는 HAL :: initTim 실제로라고 물어 필요가 있으며, 다른 코드 재가 있다면 어딘가에서 타이머를 프로그래밍하십시오. – nos
시스템 클럭 및 타이머의 소스 클럭이란 무엇입니까? (주파수) –
조금 더 많은 코드, 특히 시계, 인터럽트 및 타이머의 시작을 확인하는 데 도움이됩니다. – staringlizard