STM32H750VBT6 使能定时器

问题遇到的现象和发生背景

STM32H750VBT6 使能定时器 正点原子代码和淘宝上买的最小系统板商家代码请问这两种写法有什么区别呀?

用代码块功能插入代码,请勿粘贴截图

__HAL_RCC_TIM3_CLK_ENABLE(); //使能定时器3

#define GTIM_TIMX_PWM_CHY_CLK_ENABLE() do{ __HAL_RCC_TIM3_CLK_ENABLE(); }while(0) /* TIM3 时钟使能 */

看起来第二种会一直循环执行那个使能函数,使能一次应该就行了,怕不是板子设计有问题,必须要一直使能。

这两种写法其实并没有区别
第一种是直接使能定时器3,就用一行代码来实现定时器3的使能。
第二种用一个do...while循环来使能,第二个代码的意思是,执行一次do里面的代码,也就是_HAL_RCC_TIM3_CLK_ENABLE();然后通过while(0)来判断,因为while里面是0所以是假条件,就会跳出循环,也就相当于执行了一次定时器3使能。这个代码应该是在头文件里面进行了宏定义,是方便移植的写法。
所以总的来说两种代码没有区别,对于初学者来说,建议使用第一种方法。

【STM32】SysTick
https://blog.csdn.net/qq_40130613/article/details/125089955

参考一下