第一个 STM32F3 项目使用什么库或项目生成器?

What library or project generator to use for a first STM32F3 project?

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

似乎有三种选择,因为我想在 Linux 中使用 make 在命令行上进行开发。

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

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

我的问题是:

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

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

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

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

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