完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include "ets_sys.h"
#include "osapi.h" #include "gpio.h" #include "user_interface.h" #include "espconn.h" #include "ip_addr.h" #include "mem.h" # include "user_devicefind.h" #include "user_webserver.h" #include "pwm.h" #if ESP_PLATFORM #include "user_esp_platform.h" #endif #if ((SPI_FLASH_SIZE_MAP == 0) || (SPI_FLASH_SIZE_MAP == 1)) #error "不支持闪存映射" #elif (SPI_FLASH_SIZE_MAP == 2) #define SYSTEM_PARTITION_OTA_SIZE 0x6A000 #define SYSTEM_PARTITION_OTA_2_ADDR 0x81000 的#define SYSTEM_PARTITION_RF_CAL_ADDR 0xfb000 的#define SYSTEM_PARTITION_PHY_DATA_ADDR 0xfc000 的#define SYSTEM_PARTITION_SYSTEM_PARAMETER_ADDR 0xfd000 的#define SYSTEM_PARTITION_CUSTOMER_PRIV_PARAM_ADDR 0x7c000 #elif指令(SPI_FLASH_SIZE_MAP == 3) 的#define SYSTEM_PARTITION_OTA_SIZE 0x6A000 的#define SYSTEM_PARTITION_OTA_2_ADDR 0x81000 的#define SYSTEM_PARTITION_RF_CAL_ADDR 0x1fb000 的#define SYSTEM_PARTITION_PHY_DATA_ADDR 0x1fc000 的#define SYSTEM_PARTITION_SYSTEM_PARAMETER_ADDR 0x1fd000 的#define SYSTEM_PARTITION_CUSTOMER_PRIV_PARAM_ADDR 0x7c000 #elif指令(SPI_FLASH_SIZE_MAP == 4) 的#define SYSTEM_PARTITION_OTA_SIZE 0x6A000 的#define SYSTEM_PARTITION_OTA_2_ADDR 0x81000 的#define SYSTEM_PARTITION_RF_CAL_ADDR 0x3fb000 的#define SYSTEM_PARTITION_PHY_DATA_ADDR 0x3fc000 的#define SYSTEM_PARTITION_SYSTEM_PARAMETER_ADDR 0x3fd000 的#define SYSTEM_PARTITION_CUSTOMER_PRIV_PARAM_ADDR 0x7c000 #elif指令(SPI_FLASH_SIZE_MAP == 5) 的#define SYSTEM_PARTITION_OTA_SIZE 0x6A000 的#define SYSTEM_PARTITION_OTA_2_ADDR 0x101000 的#define SYSTEM_PARTITION_RF_CAL_ADDR 0x1fb000 的#define SYSTEM_PARTITION_PHY_DATA_ADDR 0x1fc000 的#define SYSTEM_PARTITION_SYSTEM_PARAMETER_ADDR 0x1fd000 的#define SYSTEM_PARTITION_CUSTOMER_PRIV_PARAM_ADDR 0xfc000 #elif指令(SPI_FLASH_SIZE_MAP == 6) 的#define SYSTEM_PARTITION_OTA_SIZE 0x6A000 的#define SYSTEM_PARTITION_OTA_2_ADDR 0x101000 的#define SYSTEM_PARTITION_RF_CAL_ADDR 0x3fb000 的#define SYSTEM_PARTITION_PHY_DATA_ADDR 0x3fc000 的#define SYSTEM_PARTITION_SYSTEM_PARAMETER_ADDR 0x3fd000 的#define SYSTEM_PARTITION_CUSTOMER_PRIV_PARAM_ADDR 0xfc000 的#else #ERROR “闪光灯地图不被支持” #ENDIF 的#define SYSTEM_PARTITION_CUSTOMER_PRIV_PARAM SYSTEM_PARTITION_CUSTOMER_BEGIN #define TCP_SERVER_IP "116.62.81.138" #define qingqiu "GET /v3/weather/now.json?key=smtq3n0ixdggurox&location=beijing&language=en&unit=c HTTP/1.1rnHost:api.seniverse.comrnr n" //请求的接口 uint32 priv_param_start_sec; 静态 void tcp_client_sent_cb(void *arg); static void tcp_client_recv_cb(void *arg,char *pdata,unsigned short length); 静态 void tcp_client_recon_cb(void *arg,sint8 错误); 静态 void tcp_client_discon_cb(void *arg); 静态 void tcp_client_connect_cb(void *arg); os_timer_t os_timer;// 静态表_const partition_item_partition_item [] = { { SYSTEM_PARTITION_BOOTLOADER, 0x0, 0x1000}, { SYSTEM_PARTITION_OTA_1, 0x1000, SYSTEM_PARTITION_OTA_SIZE}, { SYSTEM_PARTITION_OTA_2, SYSTEM_PARTITION_OTA_2_ADDR, SYSTEM_PARTITION_OTA_SIZE}, { SYSTEM_PARTITION_RF_CAL, SYSTEM_PARTITION_RF_0 }0_CAL_ADDR { SYSTEM_PARTITION_PHY_DATA, SYSTEM_PARTITION_PHY_DATA_ADDR, 0x1000}, { SYSTEM_PARTITION_SYSTEM_PARAMETER, SYSTEM_PARTITION_SYSTEM_PARAMETER_ADDR, 0x3000}, { SYSTEM_PARTITION_CUSTOMER_PRIV_PARAM, SYSTEM_PARTITION_CUSTOMER_PRIV_PARAM_ADDR, 0x1000}, }; void ICACHE_FLASH_ATTR user_pre_init(void) { if(!system_partition_table_regist(at_partition_table, sizeof(at_partition_table)/sizeof(at_partition_table[0]),SPI_FLASH_SIZE_MAP)) { os_printf("system_partition_table_regist 失败rn"); 而(1); } } static void ICACHE_FLASH_ATTR tcp_client_sent_cb(void *arg){ os_printf("tcp客户端发送数据成功rn"); } /** * TCP Client 接收数据处理/函数发送,可以在这接收到的来的 * static void ICACHE_FLASH_ATTRtcp_client_recv_cb(void *arg,char *pdata,unsigned short tcp){ os_printf("tcp client receive tcp服务器数据rn"); os_printf("长度: %d rn数据: %srn",len,pdata); } static void ICACHE_FLASH_ATTR tcp_client_recon_cb(void *arg,sint8 error){ os_printf("tcp client connect tcp server error %drn",error); /** * TCP Client 破坏接口调用函数* / tcp_client_discon_cb(void *arg){ os_printf("tcp客户端断开tcp服务器成功rn"); } /** * TCP 客户端连接成功回调函数 */ static voidICACHE_FLASH_R tcp_client_connect_cb(void *arg){ struct espconn *pespconn = arg; os_printf("tcp客户端连接tcp服务器成功rn"); pconn_regist_recvcb(pespconn,tcp_recvcb(pespconn,tcp_recvcb);//注册接收数据_recv_cb;//注册接收数据_recv_cb )(pespconn,tcp_client_sent_cb);//注册连接函数 espconn_regist_disconnb(pespconn,tcp_client_di***);//注册连接函数 /*char buffer[1024 ]; memset(缓冲区,0,1024); os_sprintf(buffer,"/v3/weather/now.json?language=en&key=Sn5RsUO2O3kUx9tzO&location=lingao&unit=c","api.seniverse.com"); os_printf("user_esp_platform_connect_cbrn"); espconn_send(pespconn,buffer,os_strlen(buffer));*/ espconn_send(pespconn,青丘,os_strlen(青丘)); } void ICACHE_FLASH_ATTR user_set_station_config (void) { char ssid[32]; 字符密码[64]; 结构站配置站配置; stationConf.bssid_set = 0; //不需要检查AP的MAC地址 os_memcpy(stationConf.ssid, ssid, 32); os_memcpy(stationConf.password, 密码, 64); wifi_station_set_config(&stationConf); } 结构 espconn tcp_client; void ICACHE_FLASH_ATTR tcp_client_init(struct espconn *espconn,uint8 *remote_ip,struct ip_addr *local_ip, int remote_port){ uint32 server_ip = ipaddr_addr(remote_ip); os_printf("tcp客户端连接tcp服务器rn"); espconn->proto.tcp = (esp_tcp *)os_zalloc(sizeof(esp_tcp)); espconn->type = ESPCONN_TCP; os_memcpy(espconn->proto.tcp->remote_ip,&server_ip,4);//设置要连接的服务器IP地址 espconn->proto.tcp->remote_port = remote_port;//设置要连接的服务器端口号 os_memcpy(espconn->proto.ip->local_ip,4);//设置本地IP地址 espconn->proto.tcp->local_port =espconn_port);//设置本地端口号 espconn_regist_connectcb(espconn,tcp_client_connect_cb); //注册连接成功回调函数注册 espconn_reg_reconn(espconn,cp_client_recon_cb);/连重连接c函数 espconn_connect(espconn);// ClientServer } void CHE_FLASH_ATTR huidiao(void) { os_printf("hello word"); 结构 ip_info local_ip; wifi_get_ip_info(STATION_IF,&local_ip); tcp_client_init(&tcp_client,TCP_SERVER_IP,&local_ip.ip,80); os_printf("你好n"); os_timer_disarm(&os_timer); user_init(void) { partition_item_t partition_item; os_printf("SDK版本:%sn", system_get_sdk_version()); if (!system_partition_get_item(SYSTEM_PARTITION_CUSTOMER_PRIV_PARAM, &partition_item)) { os_printf("获取分区信息失败n"); } priv_param_start_sec = partition_item.addr/SPI_FLASH_SEC_SIZE; os_printf("你好!"); wifi_set_opmode(STATIONAP_MODE); user_set_station_config(); os_timer_disarm(&os_timer); os_timer_setfn(&os_timer,(os_timer_func_t*)huidiao,NULL); os_timer_arm(&os_timer,10000,1); } |
|
|
|
只有小组成员才能发言,加入小组>>
3288 浏览 9 评论
2960 浏览 16 评论
3465 浏览 1 评论
9010 浏览 16 评论
4054 浏览 18 评论
1127浏览 3评论
579浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
573浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2306浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1864浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 15:04 , Processed in 1.297314 second(s), Total 81, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号