
许多人获得了“蓝色药丸”来尝试。 但是由于编程的复杂性,这个东西一直摆在架子上,直到更好的时机。
我们将认为“最佳时机”已经到来。
实验需要什么:
硬体
所有使用过的零件/组件均可在aliexpress.com上购买
- 当然,首先是控制器本身。
- USB-UART适配器
- 微型USB电缆
- 一组用于将组件彼此连接的电线
与UART相比,建议使用
ST-Link V2编程器更快,“固件”的加载和程序的调试
软体类
什么是模块?
模块是硬件和软件的组合。 硬件部分是“平板电脑” STM32F103C8T6,软件部分是使用
MIOC程序创建的“固件模板”,该程序是
OpenSource 。
微控制器端口
微控制器具有引脚或支脚。 其中一些是单片机电源,一些具有特殊用途(例如,Reset),一些是通用输入/输出接口(英文通用输入/输出,GPIO)。
端口被分组(A; B; C ...)。 每个组最多包含16个端口,从0到15编号。结果,端口编号看起来像PA0,PA1,...
端口用于在模块的组件(例如,微处理器)和各种外围设备之间进行通信。 端口可以充当输入,输出和双向。
“平板电脑”板上标有端口。
GPIO-通用I / O接口
在IO模块中,下表列出了端口的主要类型:

作为传感器,执行器,我们将使用Arduino的各种设备。
MIOC(模块输入输出配置器)程序
使用此程序,我们创建/配置IO模块的固件模板(Emitz项目; Keil项目)。 安装程序不需要。 下载,运行。 使用此程序,我们创建了将在固件中使用的全局变量。 变量可以与端口关联。
首次运行窗口:

创建一个项目:

选择项目的文件夹。 文件夹,对于项目应该为空!



第一个程序-微控制器的“ hello word”
我们使“蓝色药丸”上的LED闪烁。 该LED连接到PC13端口。
将行添加到变量表


生成BSP代码(F8按钮)

此外,每次更改项目后,都需要生成BSP!
在EmBitz或Keil的开发环境中打开创建的项目。 EmBitz仍然是一种解决方法。 看来作者放弃了这个项目。 将来很有可能该项目将使用Code :: Blocks。
在main.c文件中,编写以下内容:
(要增加图像的大小,请在新选项卡中将其打开)在EmBitz中,按F2,出现信息窗口后,按F7。 编译应该完成。
再次按F2将隐藏信息书签。

下载到微控制器,查看其工作原理。
纽扣
添加一个按钮,例如:

接线图:

在表中添加一个变量:

我们生成BSP。
将该程序更改为以下内容:

我们创建一个新的BSP(F8),对其进行编译,然后将其加载到微控制器中。
我们按下按钮-LED点亮,松开-它熄灭。
可以将继电器代替LED代替LED,例如:

并管理某种有效载荷。
将消息输出到控制台
您需要确定控制台是什么。
选项包括:
- USB-UART适配器
- 虚拟COM端口(Micro-USB电缆)
如果在配置中同时选择了UART1和USB作为Console,并且未选择USB VCP,则将Console分配到任何地方。 即 print_str函数(或print宏)不会有任何咒骂,但也不会有输出。 如果您不选择任何接口,或选择USB VCP,但不选择UART1或USB作为控制台,则会出现相同的行为。
控制台配置:

将TettaTerm连接到COM端口(控制台)。 如果我们通过UART1下载固件,那么不要忘记断开/连接COM端口。 在TerraTerm的“快捷按钮”中,Alt + I; Alt + N对于通过ST-Link进行引导的选项而言,这不是必需的。
编辑程序:

现在,按钮的状态将显示在控制台上:

DS18B20
将DS18B20温度传感器连接到“平板电脑”。

将变量放在表中:

将该程序更改为以下内容:

我们创建一个新的配置,进行编译,并将其加载到微控制器中。
控制台将显示传感器测得的温度。

ADC
作为使用ADC的示例,可以使用电位计:

或土壤湿度传感器

让我们关注最后一个:
配置端口:

编辑程序:

我们编译,加载。
在控制台中,我们观察到:

adc-电流ADC读数。 最大值和最小值-记录的最小和最大传感器读数,完全干燥(0%)和非常湿(100%)。
非常湿(100%)-将传感器放在一杯水中。 非常干燥(0%)-露天。
实际上,我们将土壤湿度传感器校准为0到100%。 我们将最大值和最小值放在程序文本中。

工作的结果。 传感器放置在花盆的地面上:

该项目是为植物浇水的解决方案模板。
现在就这些了。 MIOC程序将补充其他功能。