标题:
ESP8266学习笔记1-使用UDP协议和串口通信
[打印本页]
作者:
liut_text
时间:
2020-9-5 01:02
标题:
ESP8266学习笔记1-使用UDP协议和串口通信
1.在user_init(void)初始化好串口基本信息进入ESP8266_STA_Init();设置STA基本信息,利用软件定时器连接wifi
void ICACHE_FLASH_ATTR user_init(void)
{
uart_init(115200,115200);
os_delay_us(1000);
os_printf("\r\n==========================================\r\n");
os_printf("\r\n ProjectName: %s\r\n",ProjectName);
os_printf("\r\n==========================================\r\n");
ESP8266_STA_Init();
OS_Timer_1_Init_JX(1000,1);
os_printf("===================user init is over====================");
}
复制代码
2.连接wifi后ESP8266获得IP地址;初始化网络连接
void ICACHE_FLASH_ATTR ESP8266_NetCon_Init()
{
ST_NetCon.type = ESPCONN_UDP; //设置通信协议为UDP
ST_NetCon.proto.udp = (esp_udp *)os_zalloc(sizeof(esp_udp)); // 开辟内存
//此处设置本地端口号以及远程设备的IP地址和端口号,因为ESP8266设置为客户端
ST_NetCon.proto.udp->local_port = 8266;
ST_NetCon.proto.udp->remote_port = 8888;
ST_NetCon.proto.udp->remote_ip[0]=192;
ST_NetCon.proto.udp->remote_ip[1]=168;
ST_NetCon.proto.udp->remote_ip[2]=1;
ST_NetCon.proto.udp->remote_ip[3]=8;
Uart_arg = &ST_NetCon;//把远程设备的IP地址和端口号地址赋值给Uart_arg,方便在串口函数中使用
//注册回调函数
espconn_regist_recvcb(&ST_NetCon,ESP8266_WIFI_Recv_cb);
espconn_regist_sentcb(&ST_NetCon,ESP8266_WIFI_Sent_cb);
//初始化UDP通信
espconn_create(&ST_NetCon);
//客户端主动向服务器发送数据
espconn_send(&ST_NetCon,"Hello,I am ESP8266\n",os_strlen("Hello,I am ESP8266\n"));
}
复制代码
3.编写接收网络数据【ESP8266_WIFI_Recv_cb()】和发送数据【ESP8266_WIFI_Sent_cb】的回调函数
4.在uart.c文件下定义结构体struct espconn *Uart_arg;并在uart.h文件下定义好extern struct espconn *Uart_arg;
5.在uart.c文件下的uart_recvTask(os_event_t *events)函数中编写串口接收数据后的操作。()
LOCAL void ICACHE_FLASH_ATTR ///////
uart_recvTask(os_event_t *events)
{
....... //
//从串口接收数据后在此编写你要操作的程序
{
os_printf("\nESP8266 Uart0 Recieve Word:\n");
uart0_sendStr(Uart0_Buffer); //串口打印从串口接收到的数据
espconn_send(Uart_arg,Uart0_Buffer,os_strlen(Uart0_Buffer)); //发送数据给远端设备
.........
}
}
复制代码
6.结果
51hei图片20200905010021.png
(235.89 KB, 下载次数: 89)
下载附件
2020-9-5 01:00 上传
具体例程在附件里
19STA_UDP_Client.7z
(3.24 MB, 下载次数: 21)
2020-9-5 01:46 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1