如果工人想做好事,他们必须首先利用他们的工具。为了建立一个可以连接的智能气象站,我们必须首先对环境进行集成开发IDE整利索。
本教程的综合开发环境包括两部分。第一部分很常见KEIL,本文会讲解KEIL安装使用。第二部分更常见vscode,本教程后续的主要代码将是vscode中编写。vscode做代码编辑,显示效果更好,搜索、搜索等功能也更强大。此外,当我们后续切换到其他编辑环境时,可以方便地继续使用vscode编辑代码,项目编译可以使用不同的编译工具。
下一步分为两部分,讲解开发环境的建设。
- KEIL安装使用;
- VSCODE安装使用;
- 验证开发环境,完成LED下载并执行点灯代码;
下面将详细介绍,一步一步讲解。
1.KEIL安装使用
keil破解版满天飞,这里就不详细描述如何下载和破戒了。总之,下载和破戒基本上属于一个厕所的基本修养。只释几点注意事项。
1.1 安装目录
安装时,尽量安装在D盘和把手上Pack放在安装目录下,以后更容易找到。
1.2 DFP包
DFP包是为了识别和支持不同的编译工具MCU一些列驱动软件的集合。启动后,单击此信息Pack Installer安装即可完成。
建议直接在网上下载DFP便于后续安装。
MDK5 - STMicroelectronics STM32F103RC (keil.com)
MDK5 - GigaDevice GD32F103RC (keil.com)
相关的DFP在本教程对应的下载目录中,数据包便于读者直接下载。
1.3 开启示例工程
可在工程目录中直接双击打开工程。
也可以选择Project->Open Project打开工程。
开工后,我们需要了解以上四个主要图标:
1. build,也就是编译。修改一个或多个文件后,可以选择build编译。此命令仅编译修改后的部分。
2. re-build: 该功能将重新编译所有文件;
3. LOAD: 该图标将编译文件下载到目标板;
4.Option:配置目标工程。Option有很多选项。这里稍作解释,便于理解。
以后需要更改的地方,会进一步说明效果。
Target中间可以看到默认从0x80000000处,也就是flash开始地址,开始启动,并运行程序。
C/C 这些设置将用于部分。
Define的用法
Define宏定义是事先设定的。比如我们用STM32ZET6.需要定义为STM32F10X_HD,这样对应的STM32F10X.H根据这一定义,选择势能对应的宏定义。注意:STM32F10X.H无论是公共头文件还是使用STM32F103C8T6,还是STM32F103RCT六、都用同样的头文件。但是,如果是的话C8T6.会放在这里STM32F103X_MD。也就是说,启动相应的宏定义。
Optimization的定义:
编译器优化等级在这里定义。优化等级越高,编译器优化越强,优化后相应代码越少。
编译结果为0。
当优化等级为3时,编译结果显示代码占用空间明显缩小。
一般默认选择Level0可以,因为过度优化的代码可能会带来未知的问题,需要更多的时间来测试。
C99选项
切换为C支持99选项后C99中定义的一些功能。
(48条消息) keil(arm)中配置c99方法 及 C99特性_Z文的博客的博客-CSDN博客_keil中c99
这里描述了详细的功能。
对日常编程影响较大的包括:
- 可以在任何位置定义变量的位置,而不设置在开头
- inline(内联)关键词:函数和参数不需要进出栈
- 新数据类型:bool,true以及false 宏 引用long long int
包含路径
包含路径标记头文件的位置。我们通常将一类硬件驱动的c文件和h文件放在目录下。如果这里有指定的头文件,在编译过程中可能找不到相应的位置。
在后面的教程中,我们通过实际的例子来演示这一点。
1.4 下载代码,查看结果
所有代码均以最终操作结果为准。直接编译、下载和观察操作结果。
2.使用VSCODE编辑代码,管理工程
VSCode全称Visual Studio Code,它是微软推出的量级代码编辑器,免费,功能强大。支持几乎所有主流程序语言的语法亮点、代码自动完成、括号匹配等。
VSCODE安装也很简单,这里就不赘述安装过程了。安装好了VSCODE之后,通过安装插件,即可顺利运行并管理Keil的工程。
2.1安装INTELLISENSE
安装IntelliSense,该工具用于更好地识别C语言中的各种关键字,并进行相应的扩展
在扩展选项中,输c/c 即可。完成安装即可,并不需要专门配置。
2.2安装keil assistant
keil assistant让vscode能够识别和管理keil工程设置。
输入扩展keil assistant,安装。右键菜单安装后选择扩展设置。
输入扩展设置选项uv4.exe相应的安装目录。
在这里安装D盘目录,输入目录信息。
安装成功后,红框中会出现打开工程的标志。我们可以打开项目。
2.3 用VSCODE管理Keil代码
首先进入工程项目对应的目录。然后鼠标右键菜单,开启vscode。
从右上角打开图标。
2.4 用vscode编译和下载
vscode包括编译、重编和下载三个选项,可以直接完成相应项目的编译和下载。当然,这个编译和下载仍然调用后端keil这就是为什么需要把它放在前面uv4.exe路径设置到vscode中的原因。
现在,下载并尝试相应的项目编译。
(24条消息) led点灯代码。代码简单,主要用于验证开发环境。采用开发环境vscode keil,详见博文-嵌入式文档资源-CSDN文库
接下来,我们将带您一步一步地完成家庭气象站的开发。请注意,以免下次找不到。
3.教程目标
本教程将带您逐步开发具有联网功能的家庭气象站。本产品的具体功能如下:
1.带有TFT LCD可显示不同温度、湿度、高度、气压信息的液晶屏;
2. 采用LVGL驱动,使用LVGL显示效果流畅的专业组件;
3. 环境检测传感器丰富,包括温湿度传感器、气压高度传感器、环境照明传感器等;
4. 振动数据可以用加速度传感器记录;
5. 具有数据记录仪功能的加速度数据、温录加速度数据、温湿度数据、高度数据、气压数据和环境数据SD卡中;
6. 通过旋转编码器,可以控制界面左右滑动;
7. 联网功能丰富:采用WIFI连接到阿里云的网络MQTT,获取实时天气信息,并向阿里云报告数据信息;
我们将教程分为三个阶段:
熟悉驱动和传感器,裸机可加载各种传感器和屏幕,完成第一版家庭气象站功能。具体来说,没有操作系统,没有LVGL,加载各种传感器,屏幕,SD卡,显示屏幕上的值并保存在屏幕上SD记录在卡中;
1.启动后,菜单分为:1.1番茄钟;1.2 摩斯密码翻译机;1.3 家庭气象站;1.4 数据记录仪;1.5 柔性压力测试仪。 点击后,实现相应的功能;
2. 番茄钟:2.1通过按钮设置倒计时间;2.2 设置启动,停止;2.3 蜂鸣器使用类似苹果手机滴滴的声音;2.4 屏幕启动后,显示剩余时间;2.5 幕显示完成的番茄数量;
3. 摩斯密码翻译机:3.1串口接收字母,并将字母翻译成为摩斯密码;3.2 屏幕显示串口输入的英文和摩斯密码;3.3 LED和蜂鸣器播放对应的摩斯密码;3.4 按键可以启动或者停止反复播放;
4. 气象站:显示环境温度,湿度,气压,高度,环境亮度,加速度等信息;同步通过串口输出对应信息;
5. 数据记录仪:将上述信息通过SD卡保存成为文件方式,并记录对应的RTC时间;
6.柔性压力测试:通过ADC测量柔性压力传感器的压力值,并且通过屏幕显示,通过串口输出;
采用LVGL中的各个元素,重新开发屏幕和输入的交互逻辑,使得产品更加美观和专业化。其他功能继续保持。完成这个阶段后,产品开发效果达到商业应用的上层水平;
这个阶段主要是关系到联网功能的开发和实时,包括如何通过AT指令,提交MQTT订阅消息,MQTT发布消息,如何将消息暂存,统一发布到服务器,如何从服务器获取天气预报信息和时间信息,如何进行信息的解析和合成等。这个阶段,您将学习到如何真正完成一个商业级别数据记录仪,或者说环境检测仪的源码,以及对应的开发步骤。
上面三个步骤完成后,基本上打通了STM32开发的任督二脉,可以在上面项目基础上,基本上完成基于STM32的各类不同项目的开发。
因为裸机开发门槛较低,不需要掌握操作系统等知识,同时可以全面掌握STM32以及主要外设的不同配置情况。
LVGL是一种类似于操作系统的开源软件。利用LVGL开发UI界面 ,可以使得UI界面更加美观流畅。同时通过学习和联系LVGL的不同元素,也可以增加对软件代码的掌控力。
设备联网已经成为行业标准,如何处理联网过程中的注册,消息发送,消息接收,消息解析?通过联网部分开发,就可以深入理解这方面内容,进一步提示对代码的理解力,并且积累更多的轮子。
本教程不仅仅让你了解STM32开发过程中的知识点,更加重要的是,本教程让你积累很多STM32开发过程中的轮子。你手边积累的轮子越多,你就能够越快的完成你自己的产品或者项目的开发。
敬请收藏关注,以免下次找不到了