如何把机智云生成的协议移植到STM32CubeMX生成的工程

发布时间:2023-09-27  

降低IoT开发门槛是机智云的不懈追求,所以机智云先后推出自助开发平台、MCU代码自动生成器、APP在线生成器、D3规则引擎等工具,不断延伸物联网生态,兼容不同系列的MCU产品,适配STM32cubemx,大大简化 MCU 开发,降低门槛。


本文以程空气质量监测应用为例,讲解STM32接入机智云,通过STM32CubeMX 图形化配置工具生成 MCU 工程,然后只需编写几个简单的接口,即可将机智云自助生成的 STM32 方案工程里面的设备协议移植过来,这样可以十分方便的将其它型号 STM32 微控制 器连上机智云,开发智能产品。


本文的读者对象需要掌握的是:

1. 知道如何利用机智云自助开发生成 MCU 工程;2. 知道如何利用 STM32CubeMX 配置外设,生成 STM32 工程;3. 其它如开发工具 Keil,串口调试助手,STLINK,STM32CubeMX 等软件的安装使用教程这里不会赘述,新手可前往机智云开发者社区参考前期教程;

通过本文读者将学会:

1.如何把机智云生成的协议移植到 STM32CubeMX 生成的工程; 2. ADC(模数转换器)的使用; 3.GPIO 的使用; 4 . 非阻塞长短按键程序的移植; 5.简单的物联网应用开发流程;

先来张全家福:

51fc799c-d776-11ec-bce3-dac502259ad0.png

本文使用的硬件为:

52478b94-d776-11ec-bce3-dac502259ad0.png

软件工具为:

1.STM32CubeMX V4.16.1; 2.机智云自助开发平台; 3.串口调试助手; 4 . Keil V5.21.1.0;

01云端准备

我们这里演示的是一个简单的远程空气质量监测应用,即微控制器采集空气质量传感器的数据,通过 WIFI 上报到机智云服务器,然后我们通过手机端 APP 即可远程查看监测值。

我们先在机智云自助开发平台建立数据点并生成一个 MCU 方案 STM32 工程。

注:机智云自助开发平台 dev.gizwits.com

52801b8a-d776-11ec-bce3-dac502259ad0.png

通过对机智云的了解,我们知道,以下几个是必须的:

配置 WIFI 模块入网方法和触发方式;

为了和生成的测试 APP 配合,我们一般选择长按 Key2,RGB 绿灯亮起作为提示;

一个串口用于打印日志,方便调试,波特率没有要求;另一个串口(实现中断接收和写)用于和 WIFI 模组通信,波特率要求为 9600,其它参数后文给出;

MCU 需要一个定时器,1ms 中断作为心跳;上面红色的文字是实现任意 MCU 通过 WIFI 模块连接机智云所必须的。

02硬件准备

STM32L432 Nucleo-32 开发板是 Nucleo-32 系列开发板中最新的一款,它采用了STM32L432KC6 微控制器,除了具有良好的性能外,还支持超低功耗,板载 STlink 仿真器。

52b7d822-d776-11ec-bce3-dac502259ad0.png

5339a456-d776-11ec-bce3-dac502259ad0.png

根据 STM32 Nucleo-32 原理图,USART2(PA2 为 USART2_TX,PA15 为 USART2_RX)与板载仿真器连接,因此我们将它作为调试打印日志用。

535f8234-d776-11ec-bce3-dac502259ad0.png

这里 MQ-135 空气质量传感器 A0 输出电压值代表了空气质量状况,我们使用 ADC 来采集这个电压值。

53b5b87a-d776-11ec-bce3-dac502259ad0.png

按键使用 2 个,由于 STM32 GPIO 内部可配置上拉输入模式,因此无需额外的上拉电阻,我们使用最简单的方法,GPIO 输入检测到低电平表示按键按下。三色 LED 为共阴极 LED,采用 GPIO 输出高电平点亮的接线方式,限流电阻取 510 欧姆。

最终我们使用的外设如下:

54038e24-d776-11ec-bce3-dac502259ad0.png

03移植开始

3.1、首先来看 STM32CubeMX 的配置。

STM32CubeMX 生成的 PDF 报表详细描述了工程的配置信息,限于篇幅这里就不贴图了,

具体可查阅原文附件文档:

Nucleo-L432KCU6-Gokit-STM32CubeMX 配置报表.pdf

原文地址:club.gizwits.com/thread-3876-1-1.html

这里解释以下几个关键的配置:

a) 选择的微控制器型号为 STM32L432KCU6,这里大家根据实际选用的型号选择即可;b) 本板卡没有焊接外部高速晶振,因此选择的是内部晶振,倍频后,系统时钟为80MHz,这里时钟配置和我们后面配置定时器有关;c) 开启定时器 7,将作为按键扫描用,配置为 1ms 中断,定时器 7 时钟为f=80MHz/( Prescaler+1),向上计数模式,计数到(ARR+1),进入中断;d) 开启定时器 6,将作为心跳用,配置为 1ms 中断,定时器 6 时钟为f=80MHz/( Prescaler+1),向上计数模式,计数到(ARR+1),进入中断;e) 串口 2 选择 Asynchronous 模式,将作为打印日志调试用。配置为 115200 波特率、8位数据、无校验、1 位停止位,数据传输方向为发送和接收双向(PS:其实这里只用到了 TX);f) 串口 1 选择 Asynchronous 模式,将作为和 WIFI 模组通信用。参数需要符合机智云串口通信协议规定:即 9600 波特率、8 位数据、无校验、1 位停止位;另外和 WIFI 模组通信的串口 1 需要配置为中断接收;g) PB3 是板卡上的翠绿色 LED,给它添加标签 LED3;h) PB0 和 PA12 是连接了按键,配置为上拉输入模式,给它添加标签 Key1,Key2; i) 开启模数转换器 ADC1,通道 5 对应的 GPIO 是 PA0,配置为 Analog mode 并开启DMA 传输,传输方向是外设到内存且地址不自增,字长为 word;

3.2.工程文件的添加和修改

工程文件的添加和修改内容主要是:

按键驱动的移植;1ms 定时心跳的移植;串口读写的移植;工程框架的移植;

移植步骤参考:club.gizwits.com/thread-3641-1-1.html

下面简单解释下应用程序部分,即 ADC DMA 方式采集模拟电压信号:

54509cbe-d776-11ec-bce3-dac502259ad0.png

我们在 main.c 文件定义全局变量 ADC_ConvertedValue 存放 ADC 数据寄存器读取值,ADC_ConvertedValueLocal 为换算的电压值,由于参考电压为 3.3V,ADC 精度为 12bit,

计算公式如下:

ADC_ConvertedValueLocal =ADC_ConvertedValue)*3.3/4095;

54b8b204-d776-11ec-bce3-dac502259ad0.png

初始化完成后调用 HAL_ADC_Start_DMA()启动 ADC,使用 ADC 的好处是无需 CPU干预,减少 CPU 负担。

550a7c60-d776-11ec-bce3-dac502259ad0.png

在 main.c 里定义一个 ADC 转换完成回调函数,里面重新启动 ADC 转换。

5595ba64-d776-11ec-bce3-dac502259ad0.png

在 userHandle()接口里面把 ADC 采集的数值赋值给 airQuality 字段即可,当然这里可以加上一些数据处理,转换代码。

接下来就是调试了,关于如何在机智云自助开发平台生成 STM32 工程和测试 APP 以及配置入网步骤,这里不再赘述,不清楚的请参考。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    澎湃S2假想发布会; 最近又传来小米放弃澎湃S2的消息,其实这消息不算新闻,但一听到这个消息总觉得不算滋味,如果澎湃S2真的量产成功并发布,那应该会是什么样子呢?伴着小米......
    为2.4G的ZigBee与Wi-Fi如何相容;众所周知,小米的智能套装包含的4件套,人体传感器、门窗传感器、无线开关与多功能网关采用的是基于NXP的一颗工业级ZigBee射频芯片--JN5168进行......
    性屏手机更为现实。而此时小米放出柔性屏测试视频,很有可能是在为自家旗舰小米Note 2预热,而从之前的曝光来看,小米 Note 2并非使用了柔性屏幕,而是使用了双曲面屏。 只不过目前小米官方还没有正式公布小米......
    面临的竞争压力正不断攀升。 事实上,此前几年,绿米的快速崛起,也离不开巨头小米的支持。然而从2020年开始,绿米有了更多自己的想法,开始逐渐与小米“脱钩”,并加入Matter协议,尝试抱紧苹果、谷歌的大腿。然而两年时间过去,远离小米......
    -DTL-38999系列III)插配,其外壳尺寸为15。USB3.2 Gen1协议限3米。这些放大器采用坚固耐用的USB信号扩展器,为恶劣环境提供解决方案。USB3.2 Gen 1协议配有连接到3米线......
    微电子成立于2010年,是一家致力于研发高性能低功耗无线物联网芯片的芯片设计公司。主要产品包括传统蓝牙,蓝牙低功耗,Zigbee,6LoWPAN/Thread,苹果HomeKit,和2.4GHz私有协议......
    中控屏的先行者欧瑞博在3月17日,发布了7寸家居智能语音屏MixPad。 欧瑞博MixPad 7的亮点在于支持多种协议,包括Matter、Zigbee、蓝牙等主流协议,实现可视对讲,内置红外遥控器,轻松......
    独特的 ConcurrentConnect 技术不仅增强设备在多个网络中的性能,还简化向 Matter 的过渡,让用户无需放弃任何现有 Zigbee 设备,即可......
    华为、小米再次布局芯片设计公司;华为、小米持续布局半导体产业链。 天眼查信息显示,近日,华为旗下哈勃科技投资有限公司(以下简称“哈勃科技”)和小米旗下湖北小米长江产业基金合伙企业(有限......
    组织推出“matter”,Zigbee联盟也更名为CSA联盟,2022年10月,matter正式公开,全球9个国家开始提供设备认证服务。据悉,CSA联盟的成员已超过400家公司,包括小米、华为、海尔......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>