2026/1/21 17:45:23
网站建设
项目流程
网站ui设计给用户提交什么,网站哪里买外链,望野于春,嘉兴建网站文章目录一、ML307C二、ML307C 1、波特率 2、注意事项 3、模块测试三、ML307C串口调试 1、TCP 2、UDP 3、PING 4、DNS四、实例代码一、ML307C 中移物联(比邻智联) ML307C是新一代小尺寸国产化Cat.1 无线通信模组#xff0c;采用翱捷科技ASR1605 芯…文章目录一、ML307C二、ML307C1、波特率2、注意事项3、模块测试三、ML307C串口调试1、TCP2、UDP3、PING4、DNS四、实例代码一、ML307C中移物联(比邻智联) ML307C是新一代小尺寸国产化Cat.1 无线通信模组采用翱捷科技ASR1605 芯片平台专为物联网应用设计具备高集成度、低功耗和强大扩展性。采用行业通用LCCLGA 封装可前向兼容ML307系列Cat.1模组部分型号的外设接口。ML307C可广泛应用于金融支付、定位追踪、电动两轮车、视频监控等领域。官方资料 http://onemo10086.com/#/product/detail/729二、ML307C1、波特率模组为自适应波特率模式时无MATREADY上报串口需先输入AT命令返回OK后可执行后续操作。多发送几次AT命令2、注意事项每条AT命令执行完毕后才能执行下一条命令不能同时发送多条AT命令。模组开机返回MATREADY后间隔至少2s才能执行ATCFUN0或ATCFUN1ATCFUN[,]命令默认值为1。3、模块测试设备上电无MATREADY 输入 AT可看到返回信息。三、ML307C串口调试1、TCPAT\r\nAT\r\nATE0\r\nATCPIN?\r\nATCEREG?\r\n//先尝试关闭0号socket,不需要判断返回ATMIPCLOSE0\r\n//使用0号socket连接TCP服务器, 服务器地址47.92.31.46(也可以填写域名,域名由于内部需要先DNS域名解析,所以需要等待约8S才可以连接), 服务器端口号 10002ATMIPOPEN0,“TCP”,“112.125.89.8”,33927\r\n//告诉模组我要使用0号socket发送5字节数据ATMIPSEND0,5\r\n等待模组返回 发送要发送的5字节数据: 11111 (也可以填写16进制数)模块接收数据,假设0号socket接收到16字节MIPURC: “rtcp”,0,16,1111111111111111//创建连接的时候还可以指定本地socket端口号ATMIPOPEN0,“TCP”,“47.92.31.46”,10002,5,0,1000\r\n //指定本地端口号为10002、UDPAT\r\nAT\r\nATE0\r\nATCPIN?\r\nATCEREG?\r\n//先尝试关闭0号socket,不需要判断返回ATMIPCLOSE0\r\n//使用0号socket连接UDP服务器, 服务器地址47.92.31.46(也可以填写域名), 服务器端口号 10002ATMIPOPEN0,“UDP”,“47.92.31.46”,10002\r\n//告诉模组我要使用0号socket发送5字节数据ATMIPSEND0,5\r\n等待模组返回 发送要发送的5字节数据: 11111 (也可以填写16进制数)模块接收数据,假设0号socket接收到16字节MIPURC: “rudp”,0,16,11111111111111113、PINGATMPING“www.baidu.com”\r\nMPING: 0,“2409:8C54:870:34E:0:FF:B024:1916”,16,60,49[12:19:52.019]收←◆MPING: 0,“2409:8C54:870:34E:0:FF:B024:1916”,16,60,49[12:19:52.099]收←◆MPING: 0,“2409:8C54:870:34E:0:FF:B024:1916”,16,75,49[12:19:52.180]收←◆MPING: 0,“2409:8C54:870:34E:0:FF:B024:1916”,16,75,49MPING: “statistics”,4,0,60,75,674、DNSATMDNSGIP“www.baidu.com”\r\nMDNSGIP: “www.baidu.com”,“2409:8C54:870:34E:0:FF:B024:1916”,“2409:8C54:870:67:0:FF:B0C2:AD75”,“120.232.145.185”,“120.232.145.144”四、实例代码ML307CTCP连接并发送 “EST_ML307C”#includeREGX52.H#includestring.hsbit LED1P2^0;sbit LED2P2^1;sbit LED3P2^2;sbit LED4P2^3;sbit LED5P2^4;sbit LED6P2^5;sbit LED7P2^6;sbit LED8P2^7;unsignedcharAT_OK_Flag0;unsignedcharInData_OK_Flag0;#defineSIZE12charbuffer[SIZE];// 串口中断voidUART_init()// 设置串行通信 本晶振为11.0592MHZ{TMOD0x20;TH10xfd;TL10xfd;// 波特率9600SM00;SM11;// 串口工作方式1 10位异步REN1;// 串口允许接收TR11;EA1;ES1;// 串口中断}voidUART_SendByte(unsignedcharByte)// 字节的发送{SBUFByte;while(TI0);// 当数据发送完成时TI会变为一TI0;}voidUART_INTERRUPT()interrupt4{staticinti0;// 静态变量初始化1次chartmp;if(RI){// 中断函数中对接收中断的响应RI0;// RI为接受中断数据标志位接收完数据硬件置1需要软件置0tmpSBUF;if(tmp){InData_OK_Flag1;}if(tmp||tmpO||tmpL){i0;// 强制W字符为第一位}buffer[i]tmp;// 数据偏移}if(buffer[0]Obuffer[1]K){// 连接服务器等OK返回值指令的判断AT_OK_Flag1;memset(buffer,\0,SIZE);}if(buffer[0]Lbuffer[1]1){// 指令L1灯亮LED10;memset(buffer,\0,SIZE);}if(buffer[0]Lbuffer[1]0){// 指令L0灯灭LED11;memset(buffer,\0,SIZE);}}// 延时函数voidDelay10us(unsignedchart)//11.0592MHz{while(t--){unsignedchari;i2;while(--i);}}voidDelay(unsignedintxms)//12.000MHz{unsignedchari,j;while(xms){i2;j239;do{while(--j);}while(--i);xms--;}}// ML307C// ML307C发送AT指令// pbufAT指令字符串格式如ATvoidML307C_SendCmd(unsignedchar*pbuf){while(*pbuf)// 遇到空格跳出循环{UART_SendByte(*pbuf);pbuf;}UART_SendByte(\r);// 回车UART_SendByte(\n);// 换行}// ML307C发送数据到APP// pbuf数据voidML307C_SendData(unsignedchar*pbuf){while(*pbuf)// 遇到空格跳出循环{UART_SendByte(*pbuf);pbuf;}}//ML307C模块TCP工作模式初始化voidML307C_TCPModeInit(void){UART_init();Delay(1000);LED10;ML307C_SendCmd(AT);while(!AT_OK_Flag);// OK返回值的标志位AT_OK_Flag0;LED20;Delay(1500);ML307C_SendCmd(AT);while(!AT_OK_Flag);// OK返回值的标志位AT_OK_Flag0;LED30;ML307C_SendCmd(ATE0);while(!AT_OK_Flag);// OK返回值的标志位AT_OK_Flag0;LED40;ML307C_SendCmd(ATCPIN?);while(!AT_OK_Flag);// OK返回值的标志位AT_OK_Flag0;LED50;ML307C_SendCmd(ATCEREG?);while(!AT_OK_Flag);// OK返回值的标志位if(AT_OK_Flag){LED80;// 点亮LED8灯代表连接服务器初始化成功}}voidmain(){LED11;LED21;LED31;LED41;LED51;LED61;LED71;LED81;Delay(1000);ML307C_TCPModeInit();while(1){Delay(1000);ML307C_SendCmd(ATMIPCLOSE0);Delay(1000);ML307C_SendCmd(ATMIPOPEN1,\TCP\,\112.125.89.8\,34586);while(!AT_OK_Flag);// OK返回值的标志位AT_OK_Flag0;ML307C_SendCmd(ATMIPSEND1,13);while(!InData_OK_Flag);// 可以输入字符串ML307C_SendData(TEST_ML307C\r\n);InData_OK_Flag0;}}