View on GitHub

富乎 · 地问


avatar
辗转探寻为富乎?《天问》无解向地问!

<<< 返回主页

在Linux下玩转STM32

1、准备环境

1.1 硬件环境

1.2 软件环境

2、热身:烧录一个现成的测试程序(例如卖家提供的配套测试程序)

2.1 通过USB转TTL串口

2.2 通过串行调试SWDSerial Wire Debug)接口(推荐)

3、进入正题:编写一个电子界的黑佬窝Hello World)程序

驱动一个LED令其持续闪烁。步骤如下:

4、进阶技巧:打造一个双全型项目架构

所谓的双全,是指既支持图形化集成开发环境(IDE),又支持字符型命令行接口。 开发者可根据自己的偏好,在全流程或部分环节中,既可以选择在IDE下进行编写、编译、调试/运行等操作, 也可以选择使用命令行来完成这些操作。此举既可充分发挥集成开发环境和命令行各自的优势, 也能同时迎合两派开发者的需求,减少两派的纷争。下表简要对比命令行和集成开发环境的特点:

对比项 命令行 集成开发环境
运行速度 快,不需过多解释。 慢,耗内存,对老旧电脑不友好。
上手速度 慢,需要一定基础。 快,图形化傻瓜式操作。
接口稳定性 非常稳定,因为
基础命令万年不变。
不稳定,版本升级后,
菜单项内容及位置变化较大。
与第三方的集成 容易,得益于成熟通用
Shell粘合机制。
困难,因为各个IDE之间不互通,
虽然主流IDE支持插件,
但插件的开发仍有一定门槛。
自身的可扩展性 脚本透明,容易扩展。 源码封闭或庞大,
非原始团队难以扩展。
风格的一致性 与一般Linux应用项目
在形式上较为一致。
各有各的风格,难以统一。

下面将以前面的黑佬窝项目为基础,介绍打造这样一个架构所需的重点步骤。

4.1 创建用户目录及文件

4.2 修改主函数的循环业务逻辑

4.3 增加顶层Makefile

可以从头编写一个类似普通Linux应用程序的Makefile用于STM32项目中, 但不推荐这样做,原因如下:

所以,推荐的做法应该是,在项目根目录下创建的Makefile以调用各个子目录Makefile为主同时增加一些额外有用的操作,例如:

Makefile具体实现详见懒编程秘笈项目的makefile/stm32_cube_ide.mk。 可将其复制或链接到你的STM32项目的根目录,并重命名为Makefile,其用法在此不再赘述, 直接查看其内容即可了解,因其非常简单明了。

4.4 在该架构下如何协同工作

5、进阶技巧:将程序烧进内存

5.1 背景及动机

5.2 方法及步骤