0

我即将开始我的第一个 STM32 项目。(我以前使用过 atmega MCU,并且在 C 语言方面拥有数十年的经验,主要是服务器端。)

考虑到我想在 Linux 的命令行上使用 make 进行开发,似乎有三个选择。

  1. STM32CubeMX 生成的 makefile 项目,
  2. STM32CubeMX 生成的 makefile 项目,包括 FreeRTOS,或
  3. 使用 libopencm3 的 makefile 项目。

该应用程序将使用不同的协议在 4 个或更多串行端口上处理和发送消息。偶尔会设置或清除 GPIO。

我的问题是:

  • 为什么 libopencm3 存在?为什么有人会选择它而不是 STM32CubeMX 生成的 makefile 项目。
  • 对于这样的项目,学习 FreeRTOS 是否值得?
4

2 回答 2

3

我知道没有好的免费项目生成工具。我主要使用 STM32CubeMX,我可以告诉你,它肯定很有用(特别是对新手而言),但远不是你可以信赖的东西。这些年来我发现了很多错误,有些已经修复,有些仍然存在。恕我直言,总的来说,您应该更好地使用代码生成器工具作为训练工具,可能会从中提取代码片段。

我经常使用 FreeRTOS,我可以告诉你我感觉很好。也许它不如商业级产品好,但肯定它有据可查且易于处理。没有任何问题。

于 2019-12-19T09:29:50.483 回答
0

libopencm3 是 STM32 HAL 和 CMSIS(已停产)的替代品。我没有这方面的经验,但 HAL 非常有用。

FreeRTOS 非常适合创建具有多个进程的程序,这些程序需要以时间紧迫的方式共享资源。它并不总是必要的,但可以在要求不高的情况下使用。

正如 damiano 所说,STM32CubeMX 很有用,但不值得依赖。根据我的经验,最好在 STM32CubeMX 中创建一个基础项目,然后将其与项目断开连接。然后,您进一步手动添加所需的 HAL 库,并将大部分真正的初始化和配置掌握在自己手中。然而,我将使用它来创建如何初始化某些外围设备和库的示例,然后将其移植到我自己的项目中。

于 2019-12-19T11:09:17.230 回答