当前位置: 首页 > news >正文

小米标准模组+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

相关文章:

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

小米标准模组MCU 开发笔记之固件调试 背景技术名词简介● 小米IoT开发者平台● 小米IoT 模组● 固件● OTA● CRC32 固件双串口调试● MHCWB6S-IB 模组资料下载● MHCWB6S-IB 模组管脚图● 上电调试 背景 小米标准模组MCU的开发过程中,由于部分官方资料较为古早&am…...

Ubuntu22.04和Windows10双系统安装

概要 本篇演示Ubuntu22.04和Windows10双系统的安装。先安装Ubuntu22.04,再安装Windows10。 一、说明 1、电脑 笔者的电脑品牌是acer(宏碁/宏基) 电脑开机按F2进入BIOS 电脑开机按F12进入Boot Manager 2、U盘启动盘 需要用到两个U盘启动盘 (1&a…...

重新安装VSCode后,按住Ctrl(or Command) 点击鼠标左键不跳转问题

重新安装VSCode后,按住Ctrl(or Command) 点击鼠标左键不跳转问题 原因:重新安装一般是因为相应编程语言的插件被删除了或还没有下载。 本次是由于Python相关的插件被删除了,因此导致Python无法跳转。 解决办法 在vs…...

QPaint绘制自定义仪表盘组件01

网上抄别人的,只是放这里自己看一下,看完就删掉 ui Dashboard.pro QT core guigreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c11# You can make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomm…...

华为笔记本原厂系统镜像恢复安装教程方法

1.安装方法有两种,一种是用PE安装,一种是华为工厂包安装(安装完成自带F10智能还原) 若没有原装系统文件,请在这里远程恢复安装:https://pan.baidu.com/s/166gtt2okmMmuPUL1Fo3Gpg?pwdm64f 提取码:m64f …...

互联网高科技公司领导AI工业化,MatrixGo加速人工智能落地

作者:吴宁川 AI(人工智能)工业化与AI工程化正在引领人工智能的大趋势。AI工程化主要从企业CIO角度,着眼于在企业生产环境中规模化落地AI应用的工程化举措;而AI工业化则从AI供应商的角度,着眼于以规模化方式…...

Apache服务

目录 引言 一、常见的http服务程序 (一)lls (二)nginx (三)Apache (四)Tomcat 二、Apache特点 三、Apache服务的安装 (一)yum安装及配置文件 1.配置…...

【Spring连载】使用Spring Data访问 MongoDB(二)----Template API

【Spring连载】使用Spring Data访问 MongoDB(二)----Template API 一、方便的方法二、执行回调函数Execute Callbacks三、Fluent API四、异常转换五、域类型映射六、配置6.1 默认读取首选项Read Preference6.2 WriteResultChecking策略6.3 默认写安全Wri…...

手写table表格(一表头多数据)

手写table表格&#xff08;一表头多数据&#xff09; <template><div class"table-info"><div class"info-list"><div class"header-wrapper"><div class"columns-title" v-for"(i, k) in columns&q…...

python3 flask 实现对config.yaml文件的内容的增删改查,并重启服务

config.yaml配置文件内容 功能就是userpass下的用户名和密码做增删改查&#xff0c;并重启hy2服务 auth:type: userpassuserpass:csdn: csdnlisten: :443 masquerade:proxy:rewriteHost: trueurl: https://www.bing.com/type: proxy tls:cert: /root/hyst*****马赛克******er…...

ADO世界之“对象”

目录 一、Command 对象 1.Command 对象 2.语法 3.属性 4.方法 5.集合 二、Connection 对象 1.Connection 对象 2.语法 3.属性 4.方法 5.事件 6.集合 三、Error 对象 1.Error 对象 2.语法 3.属性 四、Parameter 对象 1.Field 对象 2.语法 3.属性 4.方法 …...

LeetCode59-螺旋矩阵II

参考链接&#xff1a;代码随想录->螺旋矩阵II 关键是学视频链接里面的编码思想&#xff0c;然后背下来 class Solution { public:vector<vector<int>> generateMatrix(int n) {vector<vector<int>> resvector(n,vector<int>(n,0));int sx0,s…...

MySQL 索引原理以及 SQL 优化

索引 索引&#xff1a;一种有序的存储结构&#xff0c;按照单个或者多个列的值进行排序。索引的目的&#xff1a;提升搜索效率。索引分类&#xff1a; 数据结构 B 树索引&#xff08;映射的是磁盘数据&#xff09;hash 索引&#xff08;快速锁定内存数据&#xff09;全文索引 …...

C++学习Day08之函数模板和普通函数的区别以及调用规则

目录 一、程序及输出1.1 区别1.1.1 自动类型推导&#xff0c;不可以发生隐式类型转换的1.1.2 普通函数 可以发生隐式类型转换 1.2 调用规则 二、分析与总结 一、程序及输出 1.1 区别 1.1.1 自动类型推导&#xff0c;不可以发生隐式类型转换的 1.1.2 普通函数 可以发生隐式类型…...

Kaggle实践之《Home Credit Default Risk》的逐步优化

记录下每一次的改进及其score。 1、只用训练集的特征简单处理 特征只用训练集的特征&#xff0c;把string型的特征全部进行one-hot转化&#xff0c;然后随机1:4分成测试集训练集&#xff0c;模型也调参直接出结果。 最终的score是训练集80.13%、验证集76.33%、线上74.28%。 …...

django rest framework 学习笔记-实战商城2

01收货地址模型类和视图定义_哔哩哔哩_bilibili 本博客借鉴至大佬的视频学习笔记 地址信息的管理&#xff1a;增删改查的实现 # 序列化器配置 class AddrSerializer(serializers.ModelSerializer):"""收货地址的模型序列化器"""class Meta:mo…...

WEB 3D技术 three.js 3D贺卡(4) 添加鼠标滚轮移动屏幕 改变贺卡文字功能

好&#xff0c;上文 WEB 3D技术 three.js 3D贺卡(3) 点光源灯光动画效果 那么 我们来做一下 鼠标滚动相机和滚动时不同文字的切换 首先 我们要设置多个场景 其实也不能完全叫场景 也可以说多个位置 反正简单说就是多个位置 展现多个场景 我们先在代码的最下面 加上一个对象数…...

爬虫在网页抓取的过程中可能会遇到哪些问题?

在网页抓取&#xff08;爬虫&#xff09;过程中&#xff0c;开发者可能会遇到多种问题&#xff0c;以下是一些常见问题及其解决方案&#xff1a; 1. IP封锁&#xff1a; 问题&#xff1a;封IP是最常见的问题&#xff0c;抓取的目标网站会识别并封锁频繁请求的IP地址。 解决方案…...

Eclipse中Run As On Server和Run As Java Application

一、名词释义 run java application &#xff08;作为Java应用程序运行&#xff09;是运行 java main方法。 run on server是启动一个web 应用服务器。 二、两者的区别 Eclipse中可以创建java project 也可以创建java web poject 。java project是可以直接在命令行运行,或者…...

【MySQL】库的操作——MySQL数据库 、库的操作、表的操作、字符集和校验规则、备份和恢复

文章目录 MySQL1. 库的操作2. 表的操作3. 字符集和校验规则3.1 查看系统默认字符集以及校验规则3.2 查看数据库支持的字符集3.3 查看数据库支持的字符集校验规则 4. 备份和恢复4.1 备份4.2 还原 MySQL 1. 库的操作 连接服务器 mysql -h 127.0.0.1 -P 3306 -u root -pmysql -u…...

2026最权威的六大降重复率工具解析与推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 飞速发展的人工智能技术&#xff0c;正深切地重塑着学术写作的范式&#xff0c;当下&#xf…...

告别手动调参:Neural MHE如何让无人机在风扰中‘稳如老狗’

Neural MHE&#xff1a;无人机抗风扰控制的智能调参革命 四旋翼无人机在物流配送、农业喷洒、电力巡检等场景的应用日益广泛&#xff0c;但突发的风场扰动始终是飞控系统面临的严峻挑战。传统移动视界估计(MHE)虽能有效处理状态估计问题&#xff0c;却困在手动调参的泥潭中——…...

PyTorch导入报错?手把手教你解决WinError 126找不到fbgemm.dll的问题(附libomp140.dll下载)

PyTorch导入报错终极解决方案&#xff1a;WinError 126缺失fbgemm.dll的深度修复指南 当你满怀期待地准备开始PyTorch深度学习项目时&#xff0c;突然遭遇"OSError: [WinError 126] 找不到指定的模块"错误&#xff0c;这感觉就像赛车手在起跑线上发现引擎无法启动。这…...

GG3M贝叶斯决策数学体系:六大核心领域落地应用与差异化壁垒

GG3M贝叶斯决策数学体系&#xff1a;六大核心领域落地应用与差异化壁垒摘要 GG3M的贝叶斯更新与决策数学体系&#xff0c;基于原创“事实层—模型层—元模型层”三层级架构&#xff0c;以系统长期反熵增演化为核心决策标尺&#xff0c;从“智能参数优化”跨越至“智慧框架迭代”…...

translategemma-4b-it优化升级:Ollama部署后提升翻译质量的4个技巧

translategemma-4b-it优化升级&#xff1a;Ollama部署后提升翻译质量的4个技巧 你已经成功用Ollama部署了translategemma-4b-it&#xff0c;看着它把图片里的英文变成中文&#xff0c;是不是觉得挺神奇的&#xff1f;但用了几次后&#xff0c;你可能会发现一些问题&#xff1a…...

终极Cinder着色器编程指南:7个GLSL视觉效果开发技巧

终极Cinder着色器编程指南&#xff1a;7个GLSL视觉效果开发技巧 【免费下载链接】Cinder Cinder is a community-developed, free and open source library for professional-quality creative coding in C. 项目地址: https://gitcode.com/gh_mirrors/ci/Cinder Cinder…...

别再只会让舵机转圈了!用Arduino和SG90实现精准角度控制的保姆级教程

从转圈到精准控制&#xff1a;Arduino与SG90舵机的高级应用指南 第一次接触舵机时&#xff0c;我们往往满足于让它简单地来回转动——这确实很有趣&#xff0c;就像给玩具注入了生命。但当你真正想用它构建一个机械臂、智能云台或是自动喂食器时&#xff0c;这种粗放的控制方式…...

w3x2lni:魔兽地图跨版本兼容解决方案技术指南

w3x2lni&#xff1a;魔兽地图跨版本兼容解决方案技术指南 【免费下载链接】w3x2lni 魔兽地图格式转换工具 项目地址: https://gitcode.com/gh_mirrors/w3/w3x2lni 价值定位&#xff1a;破解魔兽地图版本壁垒 当你尝试在1.32.8版本魔兽争霸III中运行经典的1.24.4地图时&…...

Comsol 脉冲激光诱导等离子体仿真模型:探索微观世界的奇妙之旅

Comsol脉冲激光诱导等离子体仿真模型 利用脉冲激光作为热源&#xff0c;在氩气环境中诱导产生等离子体&#xff0c;主要体现出等离子体的密度、等离子体温度等参数 可以为激光诱导等离子体提供准确的参考在科研与工程领域&#xff0c;对脉冲激光诱导等离子体的深入研究有着举足…...

一篇文章彻底搞懂Linux驱动的并发控制与中断上下半部机制

在嵌入式 Linux 驱动开发中&#xff0c;并发控制与中断处于极其重要的核心地位。本文&#xff0c;我将结合 CPU 的行为与操作系统的调度&#xff0c;深入分析 spinlock 和 mutex 的本质区别&#xff0c;以及 Linux 中断上下半部。1. 上下文的概念 在深入探究锁和中断之前&#…...