0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

第二十二章 W55MH32 MQTT&Aliyun示例

W55MH32 来源:W55MH32 作者:W55MH32 2025-07-24 14:17 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

单芯片解决方案,开启全新体验——W55MH32 高性能以太网单片机

W55MH32是WIZnet重磅推出的高性能以太网单片机,它为用户带来前所未有的集成化体验。这颗芯片将强大的组件集于一身,具体来说,一颗W55MH32内置高性能Arm® Cortex-M3核心,其主频最高可达216MHz;配备1024KB FLASH与96KB SRAM,满足存储与数据处理需求;集成TOE引擎,包含WIZnet全硬件TCP/IP协议栈、内置MAC以及PHY,拥有独立的32KB以太网收发缓存,可供8个独立硬件socket使用。如此配置,真正实现了All-in-One解决方案,为开发者提供极大便利。

在封装规格上,W55MH32 提供了两种选择:QFN100和QFN68。

W55MH32L采用QFN100封装版本,尺寸为12x12mm,其资源丰富,专为各种复杂工控场景设计。它拥有66个GPIO、3个ADC、12通道DMA、17个定时器、2个I2C、5个串口、2个SPI接口(其中1个带I2S接口复用)、1个CAN、1个USB2.0以及1个SDIO接口。如此丰富的外设资源,能够轻松应对工业控制中多样化的连接需求,无论是与各类传感器、执行器的通信,还是对复杂工业协议的支持,都能游刃有余,成为复杂工控领域的理想选择。同系列还有QFN68封装的W55MH32Q版本,该版本体积更小,仅为8x8mm,成本低,适合集成度高的网关模组等场景,软件使用方法一致。更多信息和资料请进入http://www.w5500.com/网站或者私信获取。

此外,本W55MH32支持硬件加密算法单元,WIZnet还推出TOE+SSL应用,涵盖TCP SSL、HTTP SSL以及 MQTT SSL等,为网络通信安全再添保障。

为助力开发者快速上手与深入开发,基于W55MH32L这颗芯片,WIZnet精心打造了配套开发板。开发板集成WIZ-Link芯片,借助一根USB C口数据线,就能轻松实现调试、下载以及串口打印日志等功能。开发板将所有外设全部引出,拓展功能也大幅提升,便于开发者全面评估芯片性能。

若您想获取芯片和开发板的更多详细信息,包括产品特性、技术参数以及价格等,欢迎访问官方网页:http://www.w5500.com/,我们期待与您共同探索W55MH32的无限可能。

wKgZO2iBiBmAe3DyAACpGc5mWX8613.png

第二十二章 W55MH32 MQTT&Aliyun示例

本篇文章,我们将详细介绍如何在W55MH32芯片上面实现MQTT协议。并通过实战例程,为大家讲解如何使用W55MH32的MQTT协议连接阿里云平台,实现与阿里云物模型的数据交互。

该例程用到的其他网络协议,例如DHCP和DNS,请参考相关章节。有关 W55MH32的初始化过程,请参考Network Install章节,这里将不再赘述。

1 MQTT简介

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是一种轻量级的、基于发布/订阅模式的消息传输协议,广泛应用于物联网IoT)领域,尤其是在网络带宽受限、设备资源有限的环境中。它由IBM在1999年提出,主要用于远程监控和控制系统中的设备通信。MQTT协议具有低带宽、低功耗、低延迟等优点,特别适用于嵌入式系统和物联网设备的通信。

2 MQTT特点

轻量级:MQTT协议采用极简的协议头,减少了消息头的大小,适合带宽有限和计算资源有限的设备。

可靠性:MQTT支持三种服务质量(QoS)级别,能够确保数据可靠送达。

实时性:MQTT适合低延迟应用场景,消息会尽可能地实时推送到订阅者。

保留消息:MQTT支持“保留消息”功能,代理会保存最后一条发布的消息,当有新设备订阅某个主题时,代理会立即发送保留的消息。

持久会话:MQTT允许客户端在断开后恢复会话状态,断开期间的消息可以在客户端重新连接后继续接收。

3 MQTT应用场景

工业自动化:在工业环境中,生产设备、传感器、控制器等都需要进行数据交换,MQTT协议适用于在复杂的工业自动化系统中提供实时通信。

智能电网:智能电网应用中,电力设备(如变电站、智能电表、开关设备等)通过以太网与控制中心进行实时数据交换,使用MQTT协议进行远程监控和控制。

远程设备监控与管理:适用于需要远程监控和管理的设备,如远程气象站、环境监测设备等。通过MQTT协议实时获取设备的传感器数据。

4 MQTT发布/订阅模式

发布订阅模式(Publish-Subscribe Pattern)是一种消息传递模式,它将发送消息的客户端(发布者)与接收消息的客户端(订阅者)解耦,使得两者不需要建立直接的联系也不需要知道对方的存在。

MQTT发布/订阅模式的精髓在于由一个被称为代理(Broker)的中间角色负责所有消息的路由和分发工作,发布者将带有主题的消息发送给代理,订阅者则向代理订阅主题来接收感兴趣的消息。

在 MQTT中,主题和订阅无法被提前注册或创建,所以代理也无法预知某一个主题之后是否会有订阅者,以及会有多少订阅者,所以只能将消息转发给当前的订阅者,如果当前不存在任何订阅,那么消息将被直接丢弃

MQTT发布/订阅模式有 4个主要组成部分:发布者、订阅者、代理和主题。

发布者(Publisher):负责将消息发布到主题上,发布者一次只能向一个主题发送数据,发布者发布消息时也无需关心订阅者是否在线。

订阅者(Subscriber):订阅者通过订阅主题接收消息,且可一次订阅多个主题。

代理(Broker):负责接收发布者的消息,并将消息转发至符合条件的订阅者。另外,代理也需要负责处理客户端发起的连接、断开连接、订阅、取消订阅等请求。

主题(Topic):主题是 MQTT进行消息路由的基础,它类似 URL路径,使用斜杠 /进行分层,比如sensor/1/temperature。一个主题可以有多个订阅者,代理会将该主题下的消息转发给所有订阅者;一个主题也可以有多个发布者,代理将按照消息到达的顺序转发。

MQTT协议的通信流程如下图:

wKgZPGiByEWAYXy_AACLyc5n_bg574.png

5 MQTT QoS详解

QoS 0:消息最多传递一次,可能会丢失,且不做重试。这是最基本的QoS级别,不保证消息的传送或顺序。

使用场景:实时传输的更新数据,如温度、湿度等,消息丢失对应用的影响较小。

QoS 1:消息至少传送一次。为了确保消息到达,发送方会重复发送消息,直到收到接收方的确认应答(PUBACK)。可能会导致消息重复接收。

使用场景:电力监测数据,或需要确保状态信息准确传输的应用场景。

QoS 2:确保消息只能被传递一次,且只传递一次。该级别保证了消息的可靠性、唯一性和顺序性。通过四次握手过程确保消息不丢失、不会重复。

适用场景:高安全要求的应用,如支付系统、重要的设备控制等,不能容忍消息重复或丢失。

6 MQTT消息

在 MQTT中,客户端可以在连接时在服务端中注册一个遗嘱消息,与普通消息类似,我们可以设置遗嘱消息的主题、有效载荷等等。当该客户端意外断开连接,服务端就会向其他订阅了相应主题的客户端发送此遗嘱消息。这些接收者也因此可以及时地采取行动。这一特性通常用于检测和响应客户端故障或掉线事件,特别适合在需要高可靠性的物联网系统和实时监控场景中使用。

有关MQTT协议的报文,可以参考:Introduction · MQTT协议中文版,本文不再赘述。

7阿里云物联网平台简介

阿里云物联网平台(Alibaba Cloud IoT Platform)是阿里云推出的一款面向物联网(IoT)行业的综合性服务平台,旨在帮助企业实现物联网设备的连接、管理、监控和数据分析等多种功能。通过该平台,企业可以将各种智能设备接入云端,并进行统一的管理和数据处理。

在设备接入上,支持 MQTT、CoAP 等多种协议,具备直连、网关代理等接入方式,能实现全球毫秒级就近接入。设备管理方面,覆盖设备全生命周期,借助设备影子保障弱网下状态一致,设备可灵活转移归属。数据服务中,实现冷热存储分离,支持可视化数据解析与 EB级离线分析。监控运维能力强,提供近百项监控指标,能一键跟踪消息流转,保障 OTA升级成功率。

8阿里云物模型介绍

阿里云物模型是阿里云物联网平台(IoT Platform)提供的一种用于描述和管理设备功能的抽象模型。物模型通过定义设备的属性、服务和事件,帮助开发者统一描述设备能力,简化设备管理和数据交互流程。阿里云物模型是设备数字化管理的核心概念之一,广泛应用于智慧城市、工业物联网、智能家居等领域。

9 MQTT连接阿里云收发数据流程

1.准备阶段

注册与实名认证:用户需要在阿里云平台注册账号,并完成实名认证。

创建产品和添加物模型:登录阿里云物联网平台,创建产品并在产品下添加以下物模型功能。

wKgZO2iByEWAE3zqAAA1VYf5dDU719.png

创建设备:在刚刚创建的产品下创建一个设备。

2.记录参数

连接参数:在刚刚创建的设备详情页中找到MQTT连接参数。

wKgZPGiByEWAAyNNAAB4PhdVsSI733.png

订阅主题:/sys/ieojgBm5q2c/${deviceName}/thing/service/property/set(属性设置主题)

发布主题:/sys/ieojgBm5q2c/${deviceName}/thing/event/property/post(上报消息主题)

注意:上面两个主题中的${deviceName}需要替换成设备名。

wKgZPGiByEWAUrb_AABBEyn866Y974.png

3.连接、订阅和发布消息

接着我们可以使用上面记录的连接参数进行连接,当连接成功后,订阅上面的订阅主题。并通过发布主题上报物模型数据。

在阿里云平台,如果产品创建阶段选择的数据格式为Alink JSON格式时,接收和发送数据格式都会遵守下面这个格式:

{
    "method":"thing.event.property.post", 
    "id":"2241348", 
    "params":{
        "prop_float":1.25, 
        "prop_int16":4658, 
        "prop_bool":1
    }, 
    "version":"1.0"
}

method表示该消息的操作类型是上报设备属性事件;id:值为"2241348",这是一个唯一的标识符;params是一个包含设备属性数据的对象用于上报物模型数据;version:值为 "1.0",表示该消息所遵循的协议版本。

4.接收消息处理

接收消息:当接收到消息时,我们只需要按照上面的json格式进行解析,然后进行相应的处理即可。

10实现过程

接下来,我们看看在W55MH32上如何实现MQTT连接阿里云,并进行订阅、发布消息以及接收消息处理。

注意:因为本示例需要访问互联网,请确保W55MH32的网络环境及配置能够正常访问互联网。

步骤1:注册MQTT定时中断函数MilliTimer_Handler()到1ms定时器中断中

void TIM3_IRQHandler(void)
{
static uint32_t tim3_1ms_count = 0;
if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)
{
   tim3_1ms_count++;
   MilliTimer_Handler();
   if (tim3_1ms_count >= 1000)
   {
       DHCP_time_handler();
       DNS_time_handler();
       tim3_1ms_count = 0;
   }
   TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
}
}

步骤2:mqtt初始化

mqttconn mqtt_params = {
 .mqttHostUrl = "iot-06z00dbroeg8dx3.mqtt.iothub.aliyuncs.com",
 .server_ip = {
     0,
 },                                                                                             /*Define the Connection Server IP*/
 .port = 1883,                                                                                  /*Define the connection service port number*/
 .clientid = "ieojgBm5q2c.W55MH32|securemode=2,signmethod=hmacsha256,timestamp=1737098648080|", /*Define the client ID*/
 .username = "W55MH32&ieojgBm5q2c",                                                             /*Define the user name*/
 .passwd = "92c427a483f8bc09d20baf445505e319ae4d89ec94360710d23b8ab2f12c58c2",                  /*Define user passwords*/
 .pubtopic = "/sys/ieojgBm5q2c/W55MH32/thing/event/property/post",                              /*Define the publication message*/
 .subtopic = "/sys/ieojgBm5q2c/W55MH32/thing/service/property/set",                             /*Define subscription messages*/
 .pubQoS = QOS0,                                                                                /*Defines the class of service for publishing messages*/
};
/**
* @brief Initializing the MQTT client side
*
* Initialize the MQTT client side with the given parameters, including network configuration and MQTT connection parameters.
*
* @param sn socket number
* @param send_buf send buffer pointer
* @param recv_buf recv buffer pointer
*/
void mqtt_init(uint8_t sn, uint8_t *send_buf, uint8_t *recv_buf)
{
   wiz_NetInfo get_info = {0};
   wizchip_getnetinfo(&get_info);
   /* DNS parsing */
   if (do_dns(send_buf, (uint8_t *)mqtt_params.mqttHostUrl, mqtt_params.server_ip))
   {
       while (1)
       {
       }
   }
   NewNetwork(&n, sn);                                          /*Obtain network configuration information*/
   ConnectNetwork(&n, mqtt_params.server_ip, mqtt_params.port); /*Connect to the MQTT server*/
   MQTTClientInit(&c, &n, 1000, send_buf, MQTT_ETHERNET_MAX_SIZE, recv_buf, MQTT_ETHERNET_MAX_SIZE);
   data.will = willdata;
   data.willFlag = 0;                                                            /* will flag: If the will annotation bit is 0, the following will-related settings are invalid*/
   willdata.qos = mqtt_params.willQoS;                                           /* will QoS */
   willdata.topicName.lenstring.data = mqtt_params.willtopic;                    /* will topic */
   willdata.topicName.lenstring.len = strlen(willdata.topicName.lenstring.data); /* will topic len */
   willdata.message.lenstring.data = mqtt_params.willmsg;                        /* will message */
   willdata.message.lenstring.len = strlen(willdata.message.lenstring.data);     /* will message len */
   willdata.retained = 0;
   willdata.struct_version = 3;
   data.MQTTVersion = 4;
   data.clientID.cstring = mqtt_params.clientid;
   data.username.cstring = mqtt_params.username;
   data.password.cstring = mqtt_params.passwd;
   data.keepAliveInterval = 30;
   data.cleansession = 1;
}

在这个函数中,需要传入使用的socket号以及收发缓存数组。进入初始化函数后,首先会使用DNS解析MQTT服务器域名,然后进行MQTT参数初始化,将连接的参数填充到data结构体中,在这里需要注意的是,当data.willFlag=0时,则是关闭遗嘱主题功能,反之则为开启。

data结构体如下所示:

//data结构体
typedef struct
{
 /** The eyecatcher for this structure.  must be MQTC. */
 char struct_id[4];
 /** The version number of this structure.  Must be 0 */
 int struct_version;
 /** Version of MQTT to be used.  3 = 3.1 4 = 3.1.1    */
 unsigned char MQTTVersion;
 MQTTString clientID;
 unsigned short keepAliveInterval;
 unsigned char cleansession;
 unsigned char willFlag;
 MQTTPacket_willOptions will;
 MQTTString username;
 MQTTString password;
} MQTTPacket_connectData;
//willdata结构体
/**
* Defines the MQTT "Last Will and Testament" (LWT) settings for
* the connect packet.
*/
typedef struct
{
/** The eyecatcher for this structure.  must be MQTW. */
char struct_id[4];
/** The version number of this structure.  Must be 0 */
int struct_version;
/** The LWT topic to which the LWT message will be published. */
MQTTString topicName;
/** The LWT payload. */
MQTTString message;
/**
     * The retained flag for the LWT message (see MQTTAsync_message.retained).
     */
unsigned char retained;
/**
     * The quality of service setting for the LWT message (see
     * MQTTAsync_message.qos and @ref qos).
     */
char qos;
} MQTTPacket_willOptions;

步骤三:在主循环中执行do_mqtt()函数

void do_mqtt(void)
{
 uint8_t ret;
 switch (run_status)
 {
 case CONN: {
     ret = MQTTConnect(&c, &data); /* Connect to the MQTT server */
     printf("Connect to the MQTT server: %d.%d.%d.%d:%drn", mqtt_params.server_ip[0], mqtt_params.server_ip[1], mqtt_params.server_ip[2], mqtt_params.server_ip[3], mqtt_params.port);
     printf("Connected:%srnrn", ret == SUCCESSS ? "success" : "failed");
     if (ret != SUCCESSS)
     {
         run_status = ERR;
     }
     else
     {
         run_status = SUB;
     }
     break;
 }
 case SUB: {
     ret = MQTTSubscribe(&c, mqtt_params.subtopic, mqtt_params.subQoS, messageArrived); /* Subscribe to Topics */
     printf("Subscribing to %srn", mqtt_params.subtopic);
     printf("Subscribed:%srnrn", ret == SUCCESSS ? "success" : "failed");
     if (ret != SUCCESSS)
     {
         run_status = ERR;
     }
     else
     {
         run_status = PUB_MESSAGE;
     }
     break;
 }
 case PUB_MESSAGE: {
     pubmessage.qos        = QOS0;
     pubmessage.payload    = "{"id":"123","version":"1.0","params":{"CurrentTemperature":26.6,},"method":"thing.event.property.post"}";
     pubmessage.payloadlen = strlen(pubmessage.payload);
     ret                   = MQTTPublish(&c, (char *)&(mqtt_params.pubtopic), &pubmessage); /* Publish message */
     if (ret != SUCCESSS)
     {
         run_status = ERR;
     }
     else
     {
         printf("publish:%s,%srnrn", mqtt_params.pubtopic, (char *)pubmessage.payload);
         run_status = KEEPALIVE;
     }
     break;
 }
 case KEEPALIVE: {
     if (MQTTYield(&c, 30) != SUCCESSS) /* keepalive MQTT */
     {
         run_status = ERR;
     }
 }
 case RECV: {
     if (mqtt_recv_flag)
     {
         mqtt_recv_flag = 0;
         json_decode(mqtt_recv_msg);
     }
     break;
 }
 case ERR: /* Running error */
     printf("system ERROR!");
     delay_ms(1000);
     break;
 default:
     break;
 }
}

do_mqtt()函数会执行一个状态机,按照以下步骤进行工作:

CONN:执行连接操作,使用我们初始化好的参数使用MQTTConnect()函数去执行连接服务器操作,连接成功后进入订阅主题步骤。

SUB:在这一步,我们会使用MQTTSubscribe()函数订阅阿里云的物模型设置属性主题,在这个函数中,需要传入客户端结构体,订阅的主题名称,订阅的QoS等级,以及订阅主题的回调函数messageArrived()。订阅成功后进入发布消息步骤。

在收到订阅主题的消息后,会执行回调函数messageArrived(),在这里我们打印出接收到的消息主题以及消息内容,并将消息拷贝到mqtt_recv_msg数组中,具体函数内容如下:

void TIM3_IRQHandler(void)
{
static uint32_t tim3_1ms_count = 0;
if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)
{
   tim3_1ms_count++;
   MilliTimer_Handler();
   if (tim3_1ms_count >= 1000)
   {
       DHCP_time_handler();
       DNS_time_handler();
       tim3_1ms_count = 0;
   }
   TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
}
}

PUB_MESSAGE:在这一步,我们会发布一个当前温度到阿里云的物模型中。成功后进入保活和接收数据部分。

KEEPALIVE和RECV:在这一步,会不断执行保活和监听接收操作,当收到数据之后,会进入json_decode()函数进行处理。

json_decode()函数主要是使用CJSON将接收到的数据进行解析,然后执行对应的操作,具体内容如下:

void TIM3_IRQHandler(void)
{
static uint32_t tim3_1ms_count = 0;
if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)
{
   tim3_1ms_count++;
   MilliTimer_Handler();
   if (tim3_1ms_count >= 1000)
   {
       DHCP_time_handler();
       DNS_time_handler();
       tim3_1ms_count = 0;
   }
   TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
}
}

11运行结果

烧录例程运行后,首先进行了PHY链路检测,然后通过DHCP打印设置网络信息,最后连接MQTT服务器进行回环测试,如下图所示:

wKgZPGiByEWAAyNNAAB4PhdVsSI733.pngwKgZO2iByEWAEQjfAACT6L-ewSM488.png

12总结

本文讲解了如何在 W55MH32芯片上实现 MQTT协议并连接阿里云平台,通过实战例程展示了从准备工作、连接配置到消息订阅、发布及接收处理的完整过程。文章详细介绍了 MQTT协议的概念、特点、应用场景、发布 /订阅模式、QoS级别,以及阿里云物联网平台和物模型相关知识,帮助读者理解其在物联网设备与云端数据交互中的实际应用价值。

下一篇文章将讲解如何在W55MH32上实现MQTT协议并连接OneNET平台,并实现与OneNET物模型的数据交互,敬请期待!

WIZnet是一家无晶圆厂半导体公司,成立于 1998年。产品包括互联网处理器 iMCU™,它采用 TOE(TCP/IP卸载引擎)技术,基于独特的专利全硬连线 TCP/IP。iMCU™面向各种应用中的嵌入式互联网设备。

WIZnet在全球拥有 70多家分销商,在香港、韩国、美国设有办事处,提供技术支持和产品营销。

香港办事处管理的区域包括:澳大利亚、印度、土耳其、亚洲(韩国和日本除外)。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 以太网
    +关注

    关注

    41

    文章

    5929

    浏览量

    179594
  • 物联网
    +关注

    关注

    2939

    文章

    47354

    浏览量

    408325
  • MQTT
    +关注

    关注

    5

    文章

    724

    浏览量

    24800
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    第二十二章 TIM——高级定时器

    本章介绍了W55MH32的高级定时器(TIM1和TIM8),其含时基单元等,具备输入捕获、输出比较、PWM生成等功能,还支持互补输出、死区插入等,适用于工业电机控制,也提及相关配置结构体。
    的头像 发表于 06-20 13:58 1436次阅读
    <b class='flag-5'>第二十二章</b> TIM——高级定时器

    第二十二章 USB 全速设备接口(USB)

    本文介绍了W55MH32的USB全速设备接口,其符合USB2.0规范,可配1-8个端点,支持同步传输、双缓冲机制及挂起/恢复。含SIE等模块,数据传输基于令牌分组,涉及端点初始化、控制传输等内容,与CAN共享512字节SRAM。
    的头像 发表于 05-29 15:07 1147次阅读
    <b class='flag-5'>第二十二章</b> USB 全速设备接口(USB)

    实时频谱仪原理及操作指南

    实时频谱仪原理及操作指南:第十八章显示行.233第十九章 W-CDMA 下行分析仪(选件22).236第二十W-CDMA 上行分析253第二十一章 文件操作.268
    发表于 10-17 17:37 0次下载

    第二十二讲 同步时序逻辑电路的分析方法

    第二十二讲 同步时序逻辑电路的分析方法 内容提要7.1 概述一、时序电路的定义二、电路构成三、分类:1 同步2 异
    发表于 03-30 16:26 5648次阅读
    <b class='flag-5'>第二十二</b>讲 同步时序逻辑电路的分析方法

    模拟电路网络课件 第二十二节:功率放大电路的一般问题

    模拟电路网络课件 第二十二节:功率放大电路的一般问题 5.1 功率放大电路的一般问题 一、功率放大电路的定义
    发表于 09-17 11:05 921次阅读

    第二章 W55MH32 DHCP示例

    本文介绍 DHCP 协议,包括其在 IP 网络自动分配参数的功能、便捷配置等特点、工作原理、报文格式和应用场景。通过 W55MH32 实战例程展示动态获取网络地址信息过程,含注册定时器中断、启用模式和获取信息等步骤,烧录后可完成检测与信息打印,PC 端能 PING 通设备。
    的头像 发表于 07-24 09:02 591次阅读
    <b class='flag-5'>第二章</b> <b class='flag-5'>W55MH32</b> DHCP<b class='flag-5'>示例</b>

    第九 W55MH32 HTTP Server示例

    本文介绍了在 W55MH32 芯片上实现 HTTP Server 功能,并通过浏览器修改其网络地址信息的方法。阐述了 HTTP 协议的概念、特点、应用场景、工作流程、请求方法、响应内容,以及 Web 页面构成和交互方式。展示了在W55MH32上实现的过程。
    的头像 发表于 07-24 09:35 655次阅读
    第九<b class='flag-5'>章</b> <b class='flag-5'>W55MH32</b> HTTP Server<b class='flag-5'>示例</b>

    十二章 W55MH32 NetBIOS示例

    本文讲解了如何在 W55MH32 芯片上实现 NetBIOS 功能,通过实战例程展示了利用 NetBIOS 进行名称 PING 测试的具体过程,包括 NetBIOS 功能的调用、请求处理、名称解析
    的头像 发表于 07-24 09:58 573次阅读
    第<b class='flag-5'>十二章</b> <b class='flag-5'>W55MH32</b> NetBIOS<b class='flag-5'>示例</b>

    第二十一章 W55MH32 PHY配置示例

    本文讲解了如何在 W55MH32 芯片上设置不同的 PHY 模式,通过实战例程展示了根据不同传输场景,将 PHY 模式在 100Mbps 全双工、10Mbps 半双工和掉电模式之间切换以降
    的头像 发表于 07-24 13:44 660次阅读
    <b class='flag-5'>第二十</b>一章 <b class='flag-5'>W55MH32</b> PHY配置<b class='flag-5'>示例</b>

    第二十三章 W55MH32 MQTT_OneNET示例

    本文讲解了如何在 W55MH32 芯片上实现 MQTT 协议并连接 OneNET 平台,通过实战例程展示了从准备工作、连接配置到消息订阅、发布及接收处理的完整过程。文章详细介绍了 MQTT 协议
    的头像 发表于 07-24 14:59 714次阅读
    <b class='flag-5'>第二十</b>三章 <b class='flag-5'>W55MH32</b> <b class='flag-5'>MQTT</b>_OneNET<b class='flag-5'>示例</b>

    第二十六章 W55MH32 上位机搜索和配置示例

    本文讲解了如何在 W55MH32 芯片上实现上位机搜索和配置功能,通过实战例程展示了使用开源上位机配置工具 SmartConfigTool 搜索局域网中的 W55MH32 并进行网络地址配置的过程
    的头像 发表于 07-24 16:13 609次阅读
    <b class='flag-5'>第二十</b>六章 <b class='flag-5'>W55MH32</b> 上位机搜索和配置<b class='flag-5'>示例</b>

    第二十七章 W55MH32 Interrupt示例

    本文讲解了如何在 W55MH32 芯片上使用 TOE 中断功能并进行回环数据测试,通过实战例程展示了从初始化中断引脚、处理中断、开启中断功能到在主循环中运行 TCP 回环服务器的完整过程。文章详细
    的头像 发表于 07-24 16:14 504次阅读
    <b class='flag-5'>第二十七章</b> <b class='flag-5'>W55MH32</b> Interrupt<b class='flag-5'>示例</b>

    第二十九章 W55MH32 Modbus_TCP_Server示例

    本文讲解了如何在 W55MH32 芯片上实现 Modbus TCP 协议的服务器模式,通过实战例程展示了从初始化 LED 相关函数、主循环调用处理函数到解析处理接收到的报文的完整过程。文章详细介绍了
    的头像 发表于 07-24 16:18 559次阅读
    <b class='flag-5'>第二十</b>九章 <b class='flag-5'>W55MH32</b> Modbus_TCP_Server<b class='flag-5'>示例</b>

    第三十 W55MH32 HTTP_Server&amp;amp;NetBIOS示例

    本文讲解了如何在 W55MH32 芯片上实现 HTTP_Server 与 NetBIOS 功能,并通过 NetBIOS 访问 HTTP 服务器网页内容,通过实战例程展示了在主循环中并行处理 HTTP 与 NetBIOS 相关事务的过程。
    的头像 发表于 07-24 16:21 925次阅读
    第三十<b class='flag-5'>章</b> <b class='flag-5'>W55MH32</b> HTTP_Server&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;NetBIOS<b class='flag-5'>示例</b>

    百度智能云亮相第二十二届ChinaJoy

    百度智能云亮相第二十二届ChinaJoy 8月1日,第二十二届中国国际数码互动娱乐展览会(ChinaJoy)在上海开幕。大会期间,百度全景展示了百度智能云千帆大模型平台等行业领先的技术服务在AI+
    的头像 发表于 08-05 09:47 651次阅读