前言
- 先到这里下载相应的用户手册,https://www.ebyte.com/product-view-news.html?id=1102
- 下载花生壳软件,借助它,完成内网穿透
- 使用网络调试助手,设置一个TCP服务器
内网穿透
在花生壳软件中配置相应的网络即可
一些AT命令的使用
- 根据手册,设定串口调试助手的波特率是
115200
- 不勾选
发送新行
向串口助手发送+++
指令,然后3s内,勾选发送新行,发送任意AT指令,如AT+CPIN,进入AT指令模式 - 根据手册,通过
AT+UART=9600 NONE
配置成波特率9600 AT+REBT
重启模块- 等待初始化完毕后,再次进入
AT
模式 AT+SOCK=TCPC
,自己的公网IP地址(花生壳上面的映射IP地址),端口号
这里,可以通过开启两个网络调试助手,从而获得完整的公网IP地址:端口号
AT+LINKSTA
,返回+ok=Connect,则配置成功- 重启模块完成后,模块自动进入透传模式
小技巧
为了确认模块是否连接上了服务器,可以利用心跳包。AT+HEARTM=3
,将心跳包发送时间间隔设定为3秒发送一次。
设置完毕后,记得重启
实例
模块插入到板子上面,通过网络来实现开关板子上面的LED灯。完成烧录后,通过网络调试助手,发送:op
开灯,:cl
关灯
#include "reg52.h"
#include <intrins.h>
#include <string.h>
sfr AUXR=0x8e;
sbit led1=P3^7;
sbit led2=P3^6;
char arr[12];
void Delay1000ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
i = 8;
j = 1;
k = 243;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
//串口初始化
void UnitInit(){
led1=0;
AUXR=0x01;
//设置定时器1定时,工作方式
TMOD &=0xF0;
TMOD |= 0x20;
//设置串行通信方式
SCON=0x50;
//设置SMOD
PCON=0x10;
//设置定时常数
TH1=0xFD;
TL1=0xFD;
//允许定时器T1计数
TR1=1;
//打开串口的中断
ES=1;
led1=1;
}
void main(){
//开启所有中断
EA=1;
//串口初始化
UnitInit();
Delay1000ms();
led2=0;
while(1){
Delay1000ms();
}
}
//中断处理函数
void Unit_Handle() interrupt 4
{
//接收 中断请求
static int i=0;
char tmp;
if(RI){
RI=0;//这一句一定一定要记得
tmp = SBUF;
if(tmp==':'){
i=0;
}
arr[i++]=tmp;
if(arr[0]==':'&& arr[1]=='o'&& arr[2]=='p'){
led2 = 0;
i=0;
memset(arr,'\0',12);
}
if(arr[0]==':'&& arr[1]=='c'&& arr[2]=='l'){
led2 = 1;
i=0;
memset(arr,'\0',12);
}
if(i == 12) i=0;
}
//发送 中断请求
if(TI);
}