小米标准模组+MCU 快速上手开发(二)——之模组串口调试

小米标准模组+MCU 开发笔记之固件调试

  • 背景
  • 技术名词简介
    • ● 小米IoT开发者平台
    • ● 小米IoT 模组
    • ● 固件
    • ● OTA
    • ● CRC32
  • 固件双串口调试
    • ● MHCWB6S-IB 模组资料下载
    • ● MHCWB6S-IB 模组管脚图
    • ● 上电调试

背景

小米标准模组+MCU的开发过程中,由于部分官方资料较为古早,踩了很多的坑。
同时发现,网络上能找到的相关开发资料较少,特此进行开发过程记录。

本次开发过程记录,以MHCWB6S-IB为例

【已发布过的开发笔记】
小米标准模组+MCU 快速上手开发(一)——之固件下载
小米标准模组+MCU 快速上手开发(二)——之模组串口调试(本章)


【MHCWB6S-IB 硬件基础信息】

模组类型:Wi-Fi蓝牙双模模组
软件开发方式:小米标准模组+MCU | 基于小米SDK标准接口的独立模块开发
通信标准:802.11b/g/n
芯片平台:ESP32-C3
RAM: 400KB 剩余20KB
FLASH: 4MB 剩余416KB
模组尺寸:1213.52.5mm
在这里插入图片描述

感兴趣的宝子,可以点个赞+收藏,便于后期有需要的时候能快速找到~~


技术名词简介

● 小米IoT开发者平台

小米IoT 平台是小米面向消费类智能硬件领域的开放合作平台。

开发者可以借助小米IoT 平台开放的资源、产品,进行智能化解决方案的搭建,从而以极低的成本,和较低的技术门槛,在确保产品智能化水平的情况下,快速将方案落地,从而满足不同用户对智能产品的使用需求和体验要求。

接入小米IoT 平台的产品:

  • 能够借助米家APP 变相对设备进行集中管理和控制;
  • 能够被具有小爱同学能力的产品,如手机、电视及音箱等控制;
  • 能够和其他接入小米IoT平台的智能产品间形成智能联动,实现真正的智慧化生活。

在这里插入图片描述

【官方技术平台链接】
小米IoT开发者平台:https://iot.mi.com/
小米模组商城:https://iot.mi.com/moduleBrowser.html

● 小米IoT 模组

模组是一个可以集成到目标电子系统的元器件,小米智能模组集成了小米IoT 平台开放能力,并已获取了主流的认证测试,能够使嵌入式系统连接到网络,并与小米服务进行通信。

小米IoT 模组是集成了小米IoT 平台开放能力的智能模组,智能模组均已获取了主流的认证测试。

使用时,开发者在选择产品接入方案并确定固件开发方式后,需选择使用相应的模组,并根据实际需要选择获取其他开发资源开发产品的智能化功能。

截至2024年2月,模组类型主要有:BLE-Mesh模组Wi-Fi蓝牙双模模组Wi-Fi单模模组透传模组 共四种。

PS:
1、目前,小米IoT 模组仅支持Wi-Fi 2.4GHz,暂不支持5GHz。
2、由于其他平台的模组并没有集成小米IoT 平台开放的能力,因此,未使用小米IoT 模组的设备无法接入小米IoT 平台。
3、小米IoT 平台已停止对新型号待接入产品使用Wi-Fi 单模模组ESP-WROOM-02U 和ESP-WROOM-02D(ESP8266系列)的支持,仅处于开发中或已上线的产品,仍可以继续使用并采购Wi-Fi 单模模组。

● 固件

指写入 EROM(可擦写只读存储器)或 EEPROM(电可擦可编程只读存储器)中的程序,是担任着一个系统最基础最底层工作的软件,是控制硬件产品与小米IoT 平台通信并执行指定功能的基础。

● OTA

OTA 为 Over-the-Air 的缩写,是对设备固件进行迭代升级的方式。

● CRC32

CRC 为 Cyclic Redundancy Check 的缩写,指循环冗余检查,是一种为了保证数据的正确而采用的验错手段,当使用的是 WiFi+BLE 模组,且使用 小米标准模组+MCU 开发模式时,需要在固件尾部添加CRC,小米提供了CRC32开发工具。


固件双串口调试

为使基于小米 IoT 模组/SDK 接入(即“直连接入”)小米 IoT 平台的硬件产品能够符合小米 IoT 平台规范要求,开发者需根据小米 IoT 平台提供的产品接入方案、产品本身功能特性、团队实际的开发水平,选择合适的开发模式开发产品的固件。

● MHCWB6S-IB 模组资料下载

模组资料下载:https://iot.mi.com/moduleBrowser.html
在这里插入图片描述

● MHCWB6S-IB 模组管脚图

在这里插入图片描述

● 上电调试

如MHCWB6S-IB 模组管脚图,可看出,MHCWB6S-IB 模组共有两个串口。

  • Log串口:是用来显示系统输出
  • MCU命令串口:主要用来进行命令交互,如model指令下发,模组model设置等等。

● 串口工具:SecureCRT,或者 Putty 等串口调试工具

配置以ESP32-C3为例
• 端口:选择外接串口模块的串口号,如“COM3”。
• 波特率:115200。
• 数据位:8
• 奇偶校验:None
• 停止位:1
• 流控:取消选择“RTS/CTS”。
在这里插入图片描述

● Log串口使用方式:即模组开发板的USB接口,直接插入插槽即可交互。
● MCU命令串口使用方式:需要连接串口转接板(如CP1202 串口转 USB 板,以下简称串口板),

  • 串口板的RXD和TXD 与 开发板的记得要交叉连接(如ESP32-C3为例,串口RXD连接板子GPIO7,串口TXD连接板子GPIO6)如果无法通信,可以尝试对调一下再试试
  • 串口GND连接板子GND
  • 串口电源引脚悬空在这里插入图片描述

● 无法正常通信连接,如何排查:

如果无法正常交互,需要进行以下几种尝试:
1、重复以上几个步骤,看是否有波特率等设置错误或者引脚链接错误。
2、查看CP1202串口驱动是否已经安装。
排查方法:插上串口板,在设备驱动里面可以看到 COM 口,如果设备驱动出现感叹号,需要重新安装串口驱动程序

● 正常通信连接,显示的log:
图中左边为Log记录,右边为MCU指令交互记录
在这里插入图片描述注意:MCU发送指令时,一定要记得自动发送"附加位0x0DH"

【官方技术平台链接】
固件开发官方教程
https://iot.mi.com/v2/new/doc/embedded-dev/overview_fw_dev
平台配置——之固件开发指引
https://iot.mi.com/new/doc/accesses/direct-access/productcenter/develop-firmware

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2799727.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

压缩感知常用的重建算法

重建算法的基本概念 在压缩感知(Compressed Sensing, CS)框架中,重建算法是指将从原始信号中以低于奈奎斯特率采集得到的压缩测量值恢复成完整信号的数学和计算过程。由于信号在采集过程中被压缩,因此重建算法的目标是找到最符合…

MATLAB 导出可编辑的eps格式图像

任务描述:部分期刊要求提交可编辑的eps格式图像,方便美工编辑对图像进行美化 我试了直接print或者在figure窗口导出,发现导出的文件放到Adobe AI中并不能编辑,经Google找到解决办法: %EPS exportgraphics(gcf,myVect…

微信小程序 ---- 慕尚花坊 项目初始化

目录 项目介绍 01. 项目概述 02. 项目演示 03. 项目技术栈 04. 接口文档 申请开发权限 项目初始化 01. 创建项目与项目初始化 02. 自定义构建 npm 集成Sass 03. 集成项目页面文件 04. VsCode 开发小程序项目 项目介绍 01. 项目概述 [慕尚花坊] 是一款 同城鲜花订购…

js设计模式:依赖注入模式

作用: 在对象外部完成两个对象的注入绑定等操作 这样可以将代码解耦,方便维护和扩展 vue中使用use注册其他插件就是在外部创建依赖关系的 示例: class App{constructor(appName,appFun){this.appName appNamethis.appFun appFun}}class Phone{constructor(app) {this.nam…

【C++初阶】类和对象(中)

目录 一.类的6个默认成员函数 1.知识引入 ​编辑 2.构造函数 (1)概念 (2)语法特性 (3)特征 ①问题引入1 ②问题引入2 (缺少默认构造函数) 3.析构函数 (1)概念 (2)特性 4.拷贝构造函数 (1)概念 (2)特征 ①拷贝构造函数是构造函数的一…

pclpy SOR去除异常值(统计滤波)

pclpy SOR去除异常值-统计滤波 一、算法原理1.背景2.原理 二、代码三、结果1.原点云2.sor处理后的点云(内点)3.sor处理后的点云(外点) 四、相关数据 一、算法原理 1.背景 激光扫描通常会生成不同点密度的点云数据集。此外&#…

【OpenSSH+Jenkins搭建项目自动化部署】

OpenSSHJenkins搭建项目自动化部署 一、Windows安装OpenSSH1.下载2.解压3.安装4.启停服务5.SSH免密登录 二、Jenkins安装1.下载2.安装启动3.登录 三、项目自动化部署1.SSH配置2.项目配置3.权限控制 一、Windows安装OpenSSH 1.下载 https://github.com/PowerShell/Win32-0penS…

常见的排序算法整理

1.冒泡排序 1.1 冒泡排序普通版 每次冒泡过程都是从数列的第一个元素开始,然后依次和剩余的元素进行比较,若小于相邻元素,则交换两者位置,同时将较大元素作为下一个比较的基准元素,继续将该元素与其相邻的元素进行比…

用于扫描机密的开源解决方案

TruffleHog 最初是在 2016 年独立创作的一个研究工具。当发布它时,没有工具扫描 Git 修订历史记录以获取秘密。我的预感是旧版本的代码中隐藏着很多秘密,但没有工具可以查找它们。 我的预感是对的。该工具迅速流行并变得非常流行。如今,它在…

数据库管理-第153期 Oracle Vector DB AI-05(20240221)

数据库管理153期 2024-02-21 数据库管理-第153期 Oracle Vector DB & AI-05(20240221)1 Oracle Vector的其他特性示例1:示例2 2 简单使用Oracle Vector环境创建包含Vector数据类型的表插入向量数据 总结 数据库管理-第153期 Oracle Vecto…

启动node服务报错Error: listen EACCES: permission denied 0.0.0.0:5000

启动node服务报错: 解决方案: 将监听端口改成3000或者其他 修改后结果: 参考原文: Error: listen EACCES: permission denied_error when starting dev server: error: listen eacc-CSDN博客

板块一 Servlet编程:第八节 文件上传下载操作 来自【汤米尼克的JavaEE全套教程专栏】

板块一 Servlet编程:第八节 文件的上传下载操作 一、文件上传(1)前端内容(2)后端内容 二、文件下载(1)前端的超链接下载(2)后端下载 在之前的内容中我们终于结束了Servle…

【云原生】Docker 安全与CA证书生成

目录 容器的安全行问题 Docker 容器与虚拟机的区别 Docker 存在的安全问题 1.Docker 自身漏洞 2.Docker 源码问题 Docker 架构缺陷与安全机制 1. 容器之间的局域网攻击 2. DDoS 攻击耗尽资源 3. 有漏洞的系统调用 4. 共享root用户权限 Docker 安全基线标准 1. 内…

sympy奇异函数

文章目录 简介SingularityFunctionrewrite 简介 奇异函数是一类不连续函数&#xff0c;可用麦考利括号表示为 f ( t ) < t − t 0 > n f(t)\lt t-t_0\gt^n f(t)<t−t0​>n 当 n < 0 n\lt 0 n<0时&#xff0c;记 N − n − 1 ≥ 0 N-n-1\geq0 N−n−1≥0&…

【云原生】持续集成持续部署

本文主要总结CI/CD的流程&#xff0c;不会详细介绍每个知识点。 啥是集成&#xff1f;啥是部署&#xff1f; 集成&#xff0c;就是把应用程序、相关环境、配置全局打包放在一个容器中的操作。部署就不解释了。 CI/CD 如果是自己手动部署的话&#xff0c;流程应该是这样的&am…

Android 沉浸式状态栏

过时的API //设置默认隐藏虚拟按键&#xff0c;虚拟按键显示后为半透明protected open fun hideNavigationBarAndFullScreen() {val flags: Int// This work only for android 4.4flags if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) {// This work only for a…

【算法与数据结构】797、LeetCode所有可能的路径

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;有向无环图&#xff08;Directed acyclic graph, DAG&#xff09;是图论中的一个概念&#xff0c;它指…

SQL注入之DNSLog外带注入

一、认识&#xff1a; 什么是dnslog呢&#xff1f; DNS就是域名解析服务&#xff0c;把一个域名转换成对应的IP地址&#xff0c;转换完成之后&#xff0c;DNS服务器就会有一个日志记录本次转换的时间、域名、域名对应的ip、请求方的一些信息&#xff0c;这个日志就叫DNSLog。…

2.21作业

使用多进程完成两个文件的拷贝&#xff0c;父进程拷贝前一半&#xff0c;子进程拷贝后一半&#xff0c;父进程回收子进程的资源。 程序代码&#xff1a; #include <myhead.h>typedef struct {int start;//拷贝的起始位置int end;//拷贝的结束位置int source_fd;//被拷…

什么是正定矩阵?Positive Definite Matrices (done)

正定矩阵的定义&#xff1a;https://baike.baidu.com/item/%E6%AD%A3%E5%AE%9A%E7%9F%A9%E9%98%B5/11030459 正定矩阵的作用、验证视频&#xff1a;https://www.bilibili.com/video/BV1Ag411M76G/?spm_id_from333.337.search-card.all.click&vd_source7a1a0bc74158c6993c…