|
我使用以下函数将 TIM5 配置为每 1μs 触发一次,APB1 总线频率 42MHz, 并希望 HAL_TIM_PeriodElapsedCallback() 每 1μs 被调用一次,但实际并未生效。 请问如何确保回调函数能正常触发? 我的初始化函数: static void manual_TIM5_Init(void) { __HAL_RCC_TIM5_CLK_ENABLE(); // 使能 Timer5 时钟 TIM_ClockConfigTypeDef sClockSourceConfig = {0}; TIM_MasterConfigTypeDef sMasterConfig = {0}; htim5.Instance = TIM5; htim5.Init.Prescaler = 1; htim5.Init.CounterMode = TIM_COUNTERMODE_UP; htim5.Init.Period = 20; htim5.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim5.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; if (HAL_TIM_Base_Init(&htim5) != HAL_OK) { Error_Handler(); } sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; if (HAL_TIM_ConfigClockSource(&htim5, &sClockSourceConfig) != HAL_OK) { Error_Handler(); } sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; if (HAL_TIMEx_MasterConfigSynchronization(&htim5, &sMasterConfig) != HAL_OK) { Error_Handler(); } } |
STM32F407 音频输入输出时 IFFT 无法正常工作
rand () 函数的问题不能产生真正的随机数
STM32F303K8搭配 FreeRTOS 时出现 RAM 溢出
printf 使用 % llu 输出错误
printf运行报错
MMT 在工具菜单中不显示
将 IAR 的 __no_init 指令移植到 GCC 编译器
关于H750VB的SDMMC开启DMA读写SD卡
F407的SDIO的硬件分流问题
与TF 卡 SDIO 通信报错:HAL_SD_ERROR_REQUEST_NOT_APPLICABLE
微信公众号
手机版
不能产生中断,说明配置需要改善。
如果能产生中断,也要注意,中断执行了一些代码,通常也要花时间,1us 对于很多型号的STM32来说,执行不了多少指令的。‘考虑一下用其他的方式实现吧。毕竟频繁的中断不利于程序执行。
先定时的时间加长(比如10ms)看看能不能进中断,逐步进行排查。如果还不能正常进入,需要看看配置情况。