近期玩了一下Art_Pi的硬件定时器设施,惯例的操作依照官网的阐明文档操作,十分顺利。
参考地址如下:
[https://www.rt-thread.org/doc...

Art-Pi默认使能的硬件定时器是TIM13,只有配置一下RT-Thread Settings,而后依照文档一步步操作,很顺利的就能驱动硬件定时器设施了。然而H750不只有TIM13,还有其余的硬件定时器,要如何操作呢?在RT-Thread Settings中只有一个TIM13的选项能够选,没有其余的定时器。

一个小小的想法,又给本人挖了一个坑,好吧。想方法把这个坑填上。

首先想到的当然是批改Kconfig文件,来给Settings减少一个能够配置的选项。Kconfig文件批改如下:

批改实现之后保留,而后从新关上Settings就能够看到TIM16的选项了

勾选之后保留配置,而后编译,会出错。提醒找不到“TIM16_CONFIG”,不慌不慌,这是因为SDK默认只是配置了TIM13,TIM16是咱们本人增加的,当然这部分代码也要本人增加。具体的就是批改drivers/include/config/目录下的tim_config.h文件,增加TIM16_CONFIG的宏定义。其实只有照着抄TIM13的就能够。

这里的中断函数入口地址要到文件stm32h750xx.h文件中查找正确的名称

批改实现之后,再次编译,应该就不会呈现报错了。而且下载之后运行代码,通过MSH的指令list_device是能够查看到设施注册胜利了。

试着依照应用timer13的形式来应用timer16,后果没有反馈。这是为什么呢?因为咱们的确是将设施注册下来了,然而实际上TIM16的硬件初始化代码还没有增加下来,实际上TIM16并没有失常工作。这就要批改stm32h7xx_hal_msp.c文件。

批改之后保留退出,并从新编译下载。再次运行代码,就能够了。

通过上述形式就失常的驱动TIM16了,然而用雷同的方法驱动TIM14却不胜利,而且会引起MCU死机,不晓得有没有大佬有解决方案呢?