梧州市网站建设_网站建设公司_JSON_seo优化
2025/12/26 1:13:27 网站建设 项目流程

文章目录

  • 一、ML307C
  • 二、ML307C
    • 1、波特率
    • 2、注意事项
    • 3、模块测试
  • 三、ML307C串口调试
    • 1、TCP
    • 2、UDP
    • 3、PING
    • 4、DNS
  • 四、实例代码

一、ML307C

中移物联(比邻智联) ML307C是新一代小尺寸国产化Cat.1 无线通信模组,采用翱捷科技ASR1605 芯片平台,专为物联网应用设计,具备高集成度、低功耗和强大扩展性。
采用行业通用LCC+LGA 封装,可前向兼容ML307系列Cat.1模组,部分型号的外设接口。
ML307C可广泛应用于金融支付、定位追踪、电动两轮车、视频监控等领域。
官方资料: http://onemo10086.com/#/product/detail/729

二、ML307C

1、波特率

模组为自适应波特率模式时,无+MATREADY上报,串口需先输入AT命令,返回OK后可执行后续操作。
(多发送几次AT命令)

2、注意事项

每条AT命令执行完毕后,才能执行下一条命令,不能同时发送多条AT命令。
模组开机返回+MATREADY后,间隔至少2s才能执行AT+CFUN=0或AT+CFUN=1,AT+CFUN=[,]命令默认值为1。

3、模块测试

设备上电,无+MATREADY ,输入 AT,可看到返回信息。

三、ML307C串口调试

1、TCP

AT\r\n
AT\r\n
ATE0\r\n
AT+CPIN?\r\n
AT+CEREG?\r\n
//先尝试关闭0号socket,不需要判断返回
AT+MIPCLOSE=0\r\n
//使用0号socket连接TCP服务器, 服务器地址47.92.31.46(也可以填写域名,域名由于内部需要先DNS域名解析,所以需要等待约8S才可以连接), 服务器端口号 10002
AT+MIPOPEN=0,“TCP”,“112.125.89.8”,33927\r\n
//告诉模组我要使用0号socket发送5字节数据
AT+MIPSEND=0,5\r\n
等待模组返回 >
发送要发送的5字节数据: 11111 (也可以填写16进制数)
模块接收数据,假设0号socket接收到16字节
+MIPURC: “rtcp”,0,16,1111111111111111
//创建连接的时候还可以指定本地socket端口号
AT+MIPOPEN=0,“TCP”,“47.92.31.46”,10002,5,0,1000\r\n //指定本地端口号为1000

2、UDP

AT\r\n
AT\r\n
ATE0\r\n
AT+CPIN?\r\n
AT+CEREG?\r\n
//先尝试关闭0号socket,不需要判断返回
AT+MIPCLOSE=0\r\n
//使用0号socket连接UDP服务器, 服务器地址47.92.31.46(也可以填写域名), 服务器端口号 10002
AT+MIPOPEN=0,“UDP”,“47.92.31.46”,10002\r\n
//告诉模组我要使用0号socket发送5字节数据
AT+MIPSEND=0,5\r\n
等待模组返回 >
发送要发送的5字节数据: 11111 (也可以填写16进制数)
模块接收数据,假设0号socket接收到16字节
+MIPURC: “rudp”,0,16,1111111111111111

3、PING

AT+MPING=“www.baidu.com”\r\n
+MPING: 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,49
+MPING: “statistics”,4,0,60,75,67

4、DNS

AT+MDNSGIP=“www.baidu.com”\r\n
+MDNSGIP: “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”

四、实例代码

ML307C,TCP连接,并发送 “EST_ML307C”

#include<REGX52.H>#include<string.h>sbit LED1=P2^0;sbit LED2=P2^1;sbit LED3=P2^2;sbit LED4=P2^3;sbit LED5=P2^4;sbit LED6=P2^5;sbit LED7=P2^6;sbit LED8=P2^7;unsignedcharAT_OK_Flag=0;unsignedcharInData_OK_Flag=0;#defineSIZE12charbuffer[SIZE];// 串口中断======================================================voidUART_init()// 设置串行通信 本晶振为11.0592MHZ{TMOD=0x20;TH1=0xfd;TL1=0xfd;// 波特率9600SM0=0;SM1=1;// 串口工作方式1 10位异步REN=1;// 串口允许接收TR1=1;EA=1;ES=1;// 串口中断}voidUART_SendByte(unsignedcharByte)// 字节的发送{SBUF=Byte;while(TI==0);// 当数据发送完成时,TI会变为一TI=0;}voidUART_INTERRUPT()interrupt4{staticinti=0;// 静态变量,初始化1次chartmp;if(RI){// 中断函数中对接收中断的响应RI=0;// RI为接受中断数据标志位,接收完数据硬件置1,需要软件置0tmp=SBUF;if(tmp=='>'){InData_OK_Flag=1;}if(tmp=='+'||tmp=='O'||tmp=='L'){i=0;// 强制W字符为第一位}buffer[i++]=tmp;// 数据偏移}if(buffer[0]=='O'&&buffer[1]=='K'){// 连接服务器等OK返回值指令的判断AT_OK_Flag=1;memset(buffer,'\0',SIZE);}if(buffer[0]=='L'&&buffer[1]=='1'){// 指令L1灯亮LED1=0;memset(buffer,'\0',SIZE);}if(buffer[0]=='L'&&buffer[1]=='0'){// 指令L0灯灭LED1=1;memset(buffer,'\0',SIZE);}}// 延时函数======================================================voidDelay10us(unsignedchart)//@11.0592MHz{while(t--){unsignedchari;i=2;while(--i);}}voidDelay(unsignedintxms)//@12.000MHz{unsignedchari,j;while(xms){i=2;j=239;do{while(--j);}while(--i);xms--;}}// ML307C======================================================// ML307C发送AT指令// pbuf:AT指令,字符串格式,如:"AT"voidML307C_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);LED1=0;ML307C_SendCmd("AT");while(!AT_OK_Flag);// OK返回值的标志位AT_OK_Flag=0;LED2=0;Delay(1500);ML307C_SendCmd("AT");while(!AT_OK_Flag);// OK返回值的标志位AT_OK_Flag=0;LED3=0;ML307C_SendCmd("ATE0");while(!AT_OK_Flag);// OK返回值的标志位AT_OK_Flag=0;LED4=0;ML307C_SendCmd("AT+CPIN?");while(!AT_OK_Flag);// OK返回值的标志位AT_OK_Flag=0;LED5=0;ML307C_SendCmd("AT+CEREG?");while(!AT_OK_Flag);// OK返回值的标志位if(AT_OK_Flag){LED8=0;// 点亮LED8灯,代表连接服务器初始化成功}}voidmain(){LED1=1;LED2=1;LED3=1;LED4=1;LED5=1;LED6=1;LED7=1;LED8=1;Delay(1000);ML307C_TCPModeInit();while(1){Delay(1000);ML307C_SendCmd("AT+MIPCLOSE=0");Delay(1000);ML307C_SendCmd("AT+MIPOPEN=1,\"TCP\",\"112.125.89.8\",34586");while(!AT_OK_Flag);// OK返回值的标志位AT_OK_Flag=0;ML307C_SendCmd("AT+MIPSEND=1,13");while(!InData_OK_Flag);// 可以输入字符串ML307C_SendData("TEST_ML307C\r\n");InData_OK_Flag=0;}}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询