WIZnet W5500系列培训活动之“MQTT协议讲解和实践(接入OneNET)”

新闻, 物聯網
万物联网的时代已经到来,物联网也由当初的概念开始进一步落实。物联网通信协议当中发展最迅速、应用最广泛的就是MQTT,它是轻量级基于代理的发布/订阅的消息传输协议,并且可以通过很少的代码和带宽与远程设备连接。在本期培训中,我们将以STM32+W5500为硬件平台,一步步剖析MQTT的协议原理及其在OneNET平台的应用案例。赶紧报名吧,让我们一起领略MQTT和OneNET云平台的风采,系列免费培训活动本年度最后一期等你参加! 活动主题:MQTT协议讲解和实践(接入OneNET)。 活动时间:2018年1月20日(周六),活动为一天,上午10:00 ~12:00 至 下午13:00~16:30。 活动地点:深圳科学馆六楼,可乘坐深圳地铁1号线,到科学馆地铁站A出口。 报名时间:1月11日 至 1月19日。 报名方式:发【WIZnet培训活动+姓名+公司名称+手机号+QQ】邮件至[email protected],收到后会安排工作人员与您联系。 报名对象:面向广大嵌入式工程师、创客、学生。 硬件平台:W5500EVB-M3 (采用STM32F103+W5500设计),免费提供给大家现场使用。 开发环境:MDK KEIL5。 温馨提示:参加本次活动的朋友请自带笔记本电脑。 活动现场用到的硬件平台,W5500开发板如下图: 开发板上集成的以太网芯片w5500如下图: 本年度最后一期活动,机会难得哦~~ 只要你想来参加,就报名吧,我们随时欢迎您的到来,大 家一起学习交流,共同成长!
Read More

教你如何通过MCU将S2E配置为UDP的工作模式

串口转以太网, 博客, 物聯網
W5500S2E-S1是一款工业级串口转以太网模块,支持TCP Server,TCP Client和UDP三种工作模式,串口波特率最高可达1.152Mbps,并提供配套的上位机配置软件,也可通过网页或AT命令等方式轻松配置。 W5500S2E-S1模块集成了全硬件TCP / IP协议栈以太网接口芯片W5500,网络通信更加快速,稳定,安全。用户只需根据手册中推荐的参考设计原理图,即可快速完成硬件电路的设计,降低开发难度,节省开发时间。 今天我们就实际的来了解一下W5500S2E-S1基于UDP工作模式的具体操作流程是什么样的,下面我们就来看看吧: 具体操作流程 (1),接线方式: (2)、例程说明: 打开“通过MCU配置S2E为UDP例程”,主程序中第一部分TIM3_Init();是设定一个帧中断的时间定时器,这是因为该例程MCU的串口是通过帧中断来接收AT命令配置S2E后返回的数据的。 第二部分USARTX_Init();初始化MCU用到的串口,这里用USART1_Config();是printf功能,用于查看调试信息。USART2_Config();用于配置S2E,需要注意的是该串口的配置参数需要同S2E的串口配置参数一致,否则配置失败。 第二部分USARTX_Init();初始化MCU用到的串口,这里用USART1_Config();是printf功能,用于查看调试信息。USART2_Config();用于配置S2E,需要注意的是该串口的配置参数需要同S2E的串口配置参数一致,否则配置失败。 /**************************************************** 函数名: UDP_Mode 形参: 无 返回值: 无 函数功能: 配置S2E为UDP模式 ****************************************************/ volatile uint8_t SendFlag = 0; void UDP_Mode(void) { uint8_t RecvFlag = 1; char *state; switch (SendFlag) { case 0: { Usart_Send(USART2, "AT\r\n"); //终端检测命令 while (RecvFlag) { if (RX2_Point & FRAME_LEN) //如果接收到数据 { state = strstr((char*) RecvBuff, "OK"); if (state != NULL) { RX2_Point = 0; //接收标志位置零 RecvFlag = 0; //状态标志位置零 SendFlag = 1; printf("Recv:%s\r\n", RecvBuff); memset(RecvBuff, 0, RECV_LEN); } else { SendFlag = 100; RecvFlag = 0; } } } } break; case 1: { Usart_Send(USART2, "AT+ECHO=0\r\n"); //开启(1)/关闭(0)回显命令 RecvFlag = 1; while (RecvFlag) { if (RX2_Point & FRAME_LEN) //如果接收到数据 { state = strstr((char*) RecvBuff, "OK"); if (state != NULL) { RX2_Point = 0; RecvFlag = 0; SendFlag…
Read More