timer - STM32 - 定时器更新中断不起作用
问题描述
我在 STM32F7 中使用定时器 6 来生成时钟信号。问题是无论我为自动重载寄存器使用什么值,我都得到了相同的时钟频率(10 kHz)。AHPB 时钟为 8 MHz。下面是初始化函数和中断回调:
static void MX_TIM7_Init(void)
{
TIM_MasterConfigTypeDef sMasterConfig = {0};
htim7.Instance = TIM7;
htim7.Init.Prescaler = 0;
htim7.Init.CounterMode = TIM_COUNTERMODE_UP;
htim7.Init.Period = 124;
htim7.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
if (HAL_TIM_Base_Init(&htim7) != HAL_OK)
{
Error_Handler();
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim7, &sMasterConfig) != HAL_OK)
{
Error_Handler();
}
}
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){
if (htim->Instance == TIM7){
HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
}
}
我主要调用 HAL_TIM_Base_Start_IT(&htim7); 在进入空的while循环之前。无论我如何更改 ARR 值,我在 LED_Pin 处得到的输出都是 10 kHz。当我运行调试器时,SR 寄存器中的 UIF 标志没有在 IRQ 处理程序中清除,尽管 __HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE); 叫做。有谁知道问题是什么?设置计时器时我错过了什么吗?
解决方案
推荐阅读
- .net - gitlab.com 包存储库中缺少 NuGet 包
- kubernetes - 减少负载后 Kubernetes HPA 不会缩减
- c# - 使用 c# 在 Azure 中创建资源组
- html - 在项目 HTML 中插入本地字体库?
- php - 我收到错误:ErrorException (E_WARNING) Creating default object from empty value check screenshot https://ibb.co/g9QTLqN
- node.js - Puppeteer Chrome 由自动化测试软件控制
- javascript - 从具有依赖值的重复项的数组中删除重复项
- arrays - 在平板电脑视图上关闭时隐藏星云菜单
- python - CVXPY 库优化效用函数
- javascript - 如何将文本文件的内容读取为 Javascript?