82|0

2903

帖子

4

TA的资源

五彩晶圆(中级)

楼主
 

【FRDM-MCXN947测评】基于FreeRTOS下的lwIP版MQtt测试 [复制链接]

1、项目简介

本次测试是IoT连接常使用的Mqtt协议联网的测试。测试使用FRDM-MCXN947开发板的以太网端口。PHY芯片使用的是LAN8741A芯片。

  该测试是基于例程:lwip_mqtt_freertos项目为基础的。开发板做为联网设备,PC软件MQTT-Explorer-0.4.0-beta1作为连接的另一台设备使用。

使用串口助手软件监视程序运行。

2、项目配置

项目使用MCUXpresso Config Tools 添加引用到测试目录。

  (1)设置好SDK目录,编译器使用自己配套的工具,这里使用的是:GNU ARM工具。

  (2)项目使用例程lwip_mqtt_freertos。

设置完成后,检查设或添加设置。

  为了能够使用mqtt控制外设,这里使用了RED LED的设置,P0_10

 

RGB LED引脚设置如下:

 

   设置引脚方向,标签使用RED_LED,生成程序(更新源代码)

3、程序与设备

使用vscode打开项目,定位到mqtt_freertos.c文件。找到函数mqtt_incoming_data_cb()

/*!
 * [url=home.php?mod=space&uid=159083]@brief[/url] Called when recieved incoming published message fragment.
 */
static void mqtt_incoming_data_cb(void *arg, const u8_t *data, u16_t len, u8_t flags)
{
    int i;
    char cmdStr[20]="";
    int ret = 0;
    LWIP_UNUSED_ARG(arg);

    for (i = 0; i < len; i++)
    {
        if (isprint(data[i]))
        {
            PRINTF("%c", (char)data[i]);
            if ( i < 20 ){ cmdStr[i] = (char)data[i]; }
        }
        else
        {
            PRINTF("\\x%02x", data[i]);
        }
    }
    
    if (flags & MQTT_DATA_FLAG_LAST)
    {
        PRINTF("\"\r\n");
    }

    if (i<20) 
    { 
        ret = strcmp(cmdStr, "ledon");
        if (ret == 0 ) {  PRINTF("LED ON!\n"); }
        ret = strcmp(cmdStr, "ledoff");
        if (ret == 0 ) {  PRINTF("LED OFF!\n"); }


    }

}

添加代码到程序,编译运行程序

4、过程测试

 

程序正常驱动,启动PC程序

 

设置mqtt服务器地址

 

添加订阅消息,  Topic:  lwip_topic/100

发送消息

 

从串口中发现,程序执行成功。

 

 

 

此帖出自NXP MCU论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表