关于程序员:ArtPi学习笔记7自己添加硬件定时器设备HWTIMER

5次阅读

共计 861 个字符,预计需要花费 3 分钟才能阅读完成。

近期玩了一下 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 死机,不晓得有没有大佬有解决方案呢?

正文完
 0