首页 > 解决方案 > 如何将带有 SPL 的 STM32F3 代码移植到 STM32F7

问题描述

我有软件在 72MHz STM32F303 上运行,带有一些真正严格的控制回路,并且已经意识到我的回路运行速度不够快。我需要将代码移植到更快的 216MHz STM32F765,但我发现 F7 系列不支持 F3 的 SPL,只支持较新的 HAL。HAL 有一个较低层的驱动程序,但如果可以的话,我正试图节省几个月的重新编码我的软件的时间。有谁知道将代码移植到 F7 而不涉及数月编码的任何方法?

标签: c++stm32stm32f7

解决方案


看起来你需要做一些工作。事实上,SPL 已经死了,HAL 似乎非常不适合这个用例,因为您正在谈论紧密的控制循环。

我的建议是切换到 HAL 并推出您自己的功能来控制您使用的外围设备。这允许您仍然使用类型定义,例如UART_HandleTypeDefST 维护并与 HAL 一起使用的类型定义,用于性能较低的事情。这也使您可以快速添加新内容并在以后进行优化。

同样重要的是:测试您的先入之见,HAL 可能会更慢,因为它更通用,我个人不建议在 SPI 外围设备上使用它。(我已经看到 HAL 在传输之间花费的时间超过了必要的时间。因为线路上有三分之二的时间是暂停而不是数据。)但是 你的要求是什么?可能 HAL 就足够了,如果是这样,那么您应该使用它。如果还不够,则为您的平台 (F7) 实现一个更好的优化版本,并针对 HAL 实现进行测试。


推荐阅读