使用STM32F103微控制器(Blue Tablet)进行的简单实验



许多人获得了“蓝色药丸”来尝试。 但是由于编程的复杂性,这个东西一直摆在架子上,直到更好的时机。

我们将认为“最佳时机”已经到来。

实验需要什么:


  • 硬体
  • 软体类

硬体


所有使用过的零件/组件均可在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程序将补充其他功能。

Source: https://habr.com/ru/post/zh-CN466663/


All Articles