一直在想抽空把步进电机的驱动程序做成一个标准库文件,今天终于得空,在移植完成后,编译时发现程序报错一共24项,头大了。
这个代码是我在硬石控制板的源代码里CV过来的,而且在他们的程序中编译通过了。多方查找无果,后来看到报错内容基本都是关于TIM定时器的,就去查看了“stm32f4xx_hal_tim.c”文件,在第197行发现这么一段代码
#ifdef HAL_TIM_MODULE_ENABLED
从字面上来看,应该是控制TIM模块使能的,既然找到了问题,那就开干,把HAL_TIM_MODULE_ENABLED这个宏定义一下,具体方法
方法一:在KEIL魔术棒中,增加宏定义
点击OK,这时我们再去看一下“stm32f4xx_hal_tim.c”文件,以前灰色的程序声明已经变成了白色(最下方红色大框内容),说明修改起作用了
重新编译,结果显示“"0 Error(s), 0 Warning(s).”,说明程序修改成功
方法二:在“stm32f4xx_hal_conf.h”配置文件中,默认HAL_TIM_MODULE_ENABLED宏定义被注释掉了,打开即可,我们看到,除了定时器TIM外,还有好多其它外设的使能都是在这里被注释掉了。
至此,步进电机的驱动文件移植成功,烧录到板子上,电机可以正常控制运行,完结。
学习过程中的所有坑,都是我们在成长过程中的磨刀石,通过这次程序移植的过程,我对STM32 HAL库的架构又有了更深入的了解。