目录
一、使用CubeMX软件分别生成SysTick和普通定时器作为基准时钟的程序
二、使用BCompare软件对比2种基准时间下生成的工程代码
4.普通定时器为基准时钟的情况下增加stm32f1xx_hal_timebase_tim.c文件
目的
为方便裸机HAL库程序手动移植FreeRTOS,需将裸机程序基准时钟改为其他定时器产生,现对两种基准时钟生成的代码进行比较,加快移植效率。
一、使用CubeMX软件分别生成SysTick和普通定时器作为基准时钟的程序
1、SysTick为基准时钟:


2、普通定时器为基准时钟,这里以 定时器6 为例

可以看出,使用普通定时器作为基准时钟的情况下,工程文件中多了一个“stm32f1xx_hal_timebase_tim.c”文件。
二、使用BCompare软件对比2种基准时间下生成的工程代码
对比发现有4个文件不相同,具体如下图,并对4处不同之处展开对比。

1.stm32f1xx_it.h文件对比
普通定时器的情况下进行了定时器6中断声明。

2.stm32f1xx_it.c文件对比
增加普通定时器下定时器中断函数,删除SysTick的中断计数函数。



3.main.c文件对比
普通定时器下增加定时器的回调函数。

4.普通定时器为基准时钟的情况下增加stm32f1xx_hal_timebase_tim.c文件
stm32f1xx_hal_timebase_tim.c文件内容即基准时钟的配置。
三、总结
根据以上对比,移植时主要注意两点:
1,普通定时器的情况下,增加 “stm32f1xx_hal_timebase_tim.c” 文件用于配置基准时钟;
2,增加普通定时器中断函数及计数函数,删除SysTick的计数函数。
版权声明:本文为Huan_Xiang_Yu原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。