用tim6做systick时钟源,芯片是407ZGTx,用的是正点原子的407核心板。本次的目的是想把测试的AES128数据打印出来,但是一直不能启动,停留在启动文件中,最后发现将时钟源改为systick后能够正常启动。
为此,开始了查错过程。
记得用freertos时,必须选用tim6,所以继续加载了freertos来实现,也许没有问题,发现还是不行。于是,对比了我之前用的h743的工程,发现it文件中tim6的中断函数没有自动生成,只在main中生成了tim6中断的回调函数,所以果断中断函数,可以启动了。
void TIM6_DAC_IRQHandler(void)
{
/* USER CODE BEGIN TIM6_DAC_IRQn 0 */
/* USER CODE END TIM6_DAC_IRQn 0 */
HAL_TIM_IRQHandler(&htim6);
/* USER CODE BEGIN TIM6_DAC_IRQn 1 */
/* USER CODE END TIM6_DAC_IRQn 1 */
}
/**
* @brief Period elapsed callback in non blocking mode
* @note This function is called when TIM6 interrupt took place, inside
* HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
* a global variable "uwTick" used as application time base.
* @param htim : TIM handle
* @retval None
*

在尝试使用TIM6作为SYSTICK时钟源的STM32 407ZGTx项目中遇到启动问题。通过对比不同工程,发现在HAL库中缺少TIM6_DAC_IRQHandler中断服务函数,添加后解决了启动问题。同时,还提到正点原子的HAL例程与IDE生成的库存在差异,建议参考ST官方例程以提高稳定性。
最低0.47元/天 解锁文章
5256

被折叠的 条评论
为什么被折叠?



