找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3373|回复: 0
打印 上一主题 下一主题
收起左侧

ESP8266学习笔记1-使用UDP协议和串口通信

[复制链接]
跳转到指定楼层
楼主
1.在user_init(void)初始化好串口基本信息进入ESP8266_STA_Init();设置STA基本信息,利用软件定时器连接wifi
  1. void ICACHE_FLASH_ATTR user_init(void)
  2. {
  3.     uart_init(115200,115200);
  4.     os_delay_us(1000);
  5.     os_printf("\r\n==========================================\r\n");
  6.     os_printf("\r\n ProjectName: %s\r\n",ProjectName);
  7.     os_printf("\r\n==========================================\r\n");
  8.     ESP8266_STA_Init();
  9.     OS_Timer_1_Init_JX(1000,1);
  10.     os_printf("===================user init is over====================");
  11. }
复制代码
2.连接wifi后ESP8266获得IP地址;初始化网络连接
  1. void ICACHE_FLASH_ATTR ESP8266_NetCon_Init()
  2. {
  3.         ST_NetCon.type = ESPCONN_UDP;                //设置通信协议为UDP

  4.         ST_NetCon.proto.udp = (esp_udp *)os_zalloc(sizeof(esp_udp));        // 开辟内存

  5.         //此处设置本地端口号以及远程设备的IP地址和端口号,因为ESP8266设置为客户端
  6.         ST_NetCon.proto.udp->local_port = 8266;
  7.         ST_NetCon.proto.udp->remote_port = 8888;
  8.         ST_NetCon.proto.udp->remote_ip[0]=192;
  9.         ST_NetCon.proto.udp->remote_ip[1]=168;
  10.         ST_NetCon.proto.udp->remote_ip[2]=1;
  11.         ST_NetCon.proto.udp->remote_ip[3]=8;

  12.         Uart_arg = &ST_NetCon;//把远程设备的IP地址和端口号地址赋值给Uart_arg,方便在串口函数中使用
  13.         //注册回调函数
  14.         espconn_regist_recvcb(&ST_NetCon,ESP8266_WIFI_Recv_cb);
  15.         espconn_regist_sentcb(&ST_NetCon,ESP8266_WIFI_Sent_cb);

  16.         //初始化UDP通信
  17.         espconn_create(&ST_NetCon);


  18.         //客户端主动向服务器发送数据
  19.         espconn_send(&ST_NetCon,"Hello,I am ESP8266\n",os_strlen("Hello,I am ESP8266\n"));
  20. }
复制代码
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)函数中编写串口接收数据后的操作。()
  1. LOCAL void ICACHE_FLASH_ATTR ///////
  2. uart_recvTask(os_event_t *events)
  3. {
  4.   .......  //
  5.         //从串口接收数据后在此编写你要操作的程序
  6.         {
  7.                 os_printf("\nESP8266 Uart0 Recieve Word:\n");
  8.                 uart0_sendStr(Uart0_Buffer);                //串口打印从串口接收到的数据
  9.                 espconn_send(Uart_arg,Uart0_Buffer,os_strlen(Uart0_Buffer)); //发送数据给远端设备
  10. .........
  11.         }
  12. }
复制代码
6.结果


具体例程在附件里
19STA_UDP_Client.7z (3.24 MB, 下载次数: 21)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表