Разобрался, надо было сначала выполнить цель "clean".Что может быть - не собирается проект на другом (не основном моем) компьютере:
Разобрался, надо было сначала выполнить цель "clean".Что может быть - не собирается проект на другом (не основном моем) компьютере:
Вставлял. Не помагало.Вроде все логично пишет, что не определена функция user_rf_pre_init
В user_main.c пишите пустую
void user_rf_pre_init(void)
{
}
Закоментируйте строкуЗдравствуйте. Помогите, пожалуйста.
Поставил UDK, импортировал пример dht22_thingspeak, выполнил цель flash, все залилось в ESP.
Подключился по COM выдает сообщение "no MYAP found, reconnect after 1s".
Нашел, что константы задаются в user_config.h, поменял. Выполнил цели all+flash и все равно МК не может найти точку доступа. Ищет старую AP "MYAP".
Как это можно исправить?
Спасибо большое) Заработало. График построился)Закоментируйте строку
//if(wifi_get_opmode() != STATION_MODE)
чтобы параметры wi-fi устанавливались принудительно при каждом старте.
или выполните make flashinit для заливки дефолтных параметров wi-fi и прочего
А что именно в UDK документировать? Там компилятор, оффициальные SDK + набор утилит + разного рода примеры. Примеры собраны с github + некоторые писал я с нуля.Есть еще вопрос. Есть ли документация по UDK? А то читаю ESP8266 RTOS SDK Programming Guide, а их примеры не компилируются.
#include <c_types.h>
#include "ets_sys.h"
#include "osapi.h"
#include "os_type.h"
#include "user_interface.h"
#include "driver/uart.h"
#include "espconn.h"
#include "mem.h"
#include "gpio.h"
#include "user_config.h"
extern int ets_uart_printf(const char *fmt, ...);
static char macaddr[6];
static ETSTimer BtnTimer;
uint16_t GPIO_Time_Active = 0;
static void ICACHE_FLASH_ATTR
at_tcpclient_sent_cb(void *arg) {
#ifdef PLATFORM_DEBUG
ets_uart_printf("Send callback\r\n");
#endif
struct espconn *pespconn = (struct espconn *)arg;
espconn_disconnect(pespconn);
}
static void ICACHE_FLASH_ATTR
at_tcpclient_discon_cb(void *arg) {
struct espconn *pespconn = (struct espconn *)arg;
os_free(pespconn->proto.tcp);
os_free(pespconn);
#ifdef PLATFORM_DEBUG
ets_uart_printf("Disconnect callback\r\n");
#endif
}
static void ICACHE_FLASH_ATTR
at_tcpclient_connect_cb(void *arg)
{
struct espconn *pespconn = (struct espconn *)arg;
#ifdef PLATFORM_DEBUG
ets_uart_printf("TCP client connect\r\n");
#endif
espconn_regist_sentcb(pespconn, at_tcpclient_sent_cb);
//espconn_regist_recvcb(pespconn, at_tcpclient_recv);
espconn_regist_disconcb(pespconn, at_tcpclient_discon_cb);
char payload[128];
os_sprintf(payload, MACSTR ",%s\r\n", MAC2STR(macaddr), "ESP8266");
#ifdef PLATFORM_DEBUG
ets_uart_printf(payload);
#endif
espconn_sent(pespconn, payload, strlen(payload));
}
static void ICACHE_FLASH_ATTR
senddata()
{
char info[150];
char tcpserverip[15];
struct espconn *pCon = (struct espconn *)os_zalloc(sizeof(struct espconn));
if (pCon == NULL)
{
#ifdef PLATFORM_DEBUG
ets_uart_printf("TCP connect failed\r\n");
#endif
return;
}
pCon->type = ESPCONN_TCP;
pCon->state = ESPCONN_NONE;
os_sprintf(tcpserverip, "%s", TCPSERVERIP);
uint32_t ip = ipaddr_addr(tcpserverip);
pCon->proto.tcp = (esp_tcp *)os_zalloc(sizeof(esp_tcp));
pCon->proto.tcp->local_port = espconn_port();
pCon->proto.tcp->remote_port = TCPSERVERPORT;
os_memcpy(pCon->proto.tcp->remote_ip, &ip, 4);
espconn_regist_connectcb(pCon, at_tcpclient_connect_cb);
//espconn_regist_reconcb(pCon, at_tcpclient_recon_cb);
#ifdef PLATFORM_DEBUG
os_sprintf(info,"Start espconn_connect to " IPSTR ":%d\r\n",
IP2STR(pCon->proto.tcp->remote_ip),
pCon->proto.tcp->remote_port);
ets_uart_printf(info);
#endif
espconn_connect(pCon);
}
static void ICACHE_FLASH_ATTR BtnTimerCb(void *arg)
{
if (!GPIO_INPUT_GET(BTNGPIO))
{
GPIO_Time_Active++;
} else {
if (GPIO_Time_Active != 0)
{
#ifdef PLATFORM_DEBUG
ets_uart_printf("Start sending data...\r\n");
#endif
senddata();
}
GPIO_Time_Active = 0;
}
}
void BtnInit() {
// Select pin function
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U, FUNC_GPIO0);
// Enable pull up R
PIN_PULLUP_EN(PERIPHS_IO_MUX_GPIO0_U);
// Set GPIO0 as input mode
gpio_output_set(0, 0, 0, BIT0);
os_timer_disarm(&BtnTimer);
os_timer_setfn(&BtnTimer, BtnTimerCb, NULL);
os_timer_arm(&BtnTimer, 500, 1);
}
void user_rf_pre_init(void)
{
}
void ICACHE_FLASH_ATTR user_init()
{
uart_init(BIT_RATE_115200, BIT_RATE_115200);
os_delay_us(100);
#ifdef PLATFORM_DEBUG
ets_uart_printf("ESP8266 platform starting...\r\n");
#endif
struct softap_config apConfig;
struct ip_info ipinfo;
struct dhcps_lease lease;
char ssid[33];
char password[33];
char macaddress[17];
char info[150];
//DHCP
if (wifi_softap_dhcps_status()) {
wifi_softap_dhcps_stop();
}
wifi_softap_get_dhcps_lease(&lease);
char tcpserverip[15];
os_sprintf(tcpserverip, "%s", TCPSERVERIP);
uint32 leaseAddr = ipaddr_addr(tcpserverip);
#ifdef PLATFORM_DEBUG
os_sprintf(info,"leaseAddr: %d\r\n",
leaseAddr);
ets_uart_printf(info);
#endif
lease.start_ip.addr = leaseAddr;
lease.end_ip.addr = leaseAddr;
lease.enable = true;
wifi_softap_set_dhcps_lease(&lease);
wifi_softap_dhcps_start();
#ifdef PLATFORM_DEBUG
os_sprintf(info,"DHCP STATUS: %u, ENABLE: %u, START_IP: %s, END_IP: %s\r\n",
wifi_softap_dhcps_status(),
lease.enable,
lease.start_ip,
lease.end_ip);
ets_uart_printf(info);
#endif
if(wifi_get_opmode() != SOFTAP_MODE)
{
#ifdef PLATFORM_DEBUG
ets_uart_printf("ESP8266 not in SOFTAP mode, restarting in SOFTAP mode...\r\n");
#endif
wifi_set_opmode(SOFTAP_MODE);
//after esp_iot_sdk_v0.9.2, need not to restart
//system_restart();
}
IP4_ADDR(&ipinfo.ip, 10, 10, 10, 1);
IP4_ADDR(&ipinfo.gw, 10, 10, 10, 1);
IP4_ADDR(&ipinfo.netmask, 255, 255, 255, 0);
wifi_set_ip_info(SOFTAP_IF, &ipinfo);
wifi_get_macaddr(SOFTAP_IF, macaddr);
wifi_softap_get_config(&apConfig);
os_memset(apConfig.ssid, 0, sizeof(apConfig.ssid));
os_sprintf(ssid, "%s", WIFI_APSSID);
os_memcpy(apConfig.ssid, ssid, os_strlen(ssid));
if (wifi_get_opmode() == SOFTAP_MODE)
{
#ifdef WIFI_APWPA
os_memset(apConfig.password, 0, sizeof(apConfig.password));
os_sprintf(password, "%s", WIFI_APPASSWORD);
os_memcpy(apConfig.password, password, os_strlen(password));
apConfig.authmode = AUTH_WPA_WPA2_PSK;
#else
apConfig.authmode = AUTH_OPEN;
#endif
apConfig.channel = 7;
apConfig.max_connection = 255;
apConfig.ssid_hidden = 0;
wifi_softap_set_config(&apConfig);
}
#ifdef PLATFORM_DEBUG
if (wifi_get_opmode() == SOFTAP_MODE)
{
wifi_softap_get_config(&apConfig);
os_sprintf(macaddress, MACSTR, MAC2STR(macaddr));
os_sprintf(info,"OPMODE: %u, SSID: %s, PASSWORD: %s, CHANNEL: %d, AUTHMODE: %d, MACADDRESS: %s\r\n",
wifi_get_opmode(),
apConfig.ssid,
apConfig.password,
apConfig.channel,
apConfig.authmode,
macaddress);
ets_uart_printf(info);
}
#endif
BtnInit();
#ifdef PLATFORM_DEBUG
ets_uart_printf("ESP8266 platform started!\r\n");
#endif
}
Конденсатор 1000 мкф на выходе 1117 имеется, пульсации смотрел осцилографом - с питанием все норм.Вылечили стабилизацией питания
1. Подтверждаю, та же фигня. Удалил просто это условие из батника. Это первая проблема.Win 8.1 64b при запуске батника install-mingw-package.bat ошибка, что нет прав админа, хотя они есть.
К сожалению Win 8.1 64b нет в наличии и проверить/отладить это не могу.Win 8.1 64b при запуске батника install-mingw-package.bat ошибка
Тогда странно, попробую на виртуалке поставить Win 8.1 x64 и провести экспериментвсе по умолчанию, пути и настройки не менял.
c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\mingw32\bits\gthr-default.h:33:0: note: это расположение предыдущего определе
ния
#define CONST_CAST2(TOTYPE,FROMTYPE,X) ((__extension__(union {FROMTYPE _q; TOTYPE _nq;})(X))._nq)
^
g++ -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno
-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-var
iadic-macros -Wno-overlength-strings -DHAVE_CONFIG_H -static-libstdc++ -static-libgcc -Wl,--stack,12582912 -o cc1.exe
c/c-lang.o c-family/stub-objc.o attribs.o c/c-errors.o c/c-decl.o c/c-typeck.o c/c-convert.o c/c-aux-info.o c/c-objc-com
mon.o c/c-parser.o c/c-array-notation.o c-family/c-common.o c-family/c-cppbuiltin.o c-family/c-dump.o c-family/c-format.
o c-family/c-gimplify.o c-family/c-lex.o c-family/c-omp.o c-family/c-opts.o c-family/c-pch.o c-family/c-ppoutput.o c-fam
ily/c-pragma.o c-family/c-pretty-print.o c-family/c-semantics.o c-family/c-ada-spec.o c-family/c-cilkplus.o c-family/arr
ay-notation-common.o c-family/cilk.o c-family/c-ubsan.o default-c.o \
cc1-checksum.o libbackend.a main.o libcommon-target.a libcommon.a ../libcpp/libcpp.a ../libdecnumber/libdecnu
mber.a libcommon.a ../libcpp/libcpp.a ../libbacktrace/.libs/libbacktrace.a ../libiberty/libiberty.a ../libdecnumber/li
bdecnumber.a -L/c/esp8266-devkit/Espressif/build/gmp/lib -L/c/esp8266-devkit/Espressif/build/mpfr/lib -L/c/esp8266-dev
kit/Espressif/build/mpc/lib -lmpc -lmpfr -lgmp -L../zlib -lz
c-family/c-common.o: In function `Z26c_common_to_target_charsetx':
c:\esp8266-devkit\Espressif\dl\gcc-5.2.0\build-2\gcc/../../gcc/c-family/c-common.c:10047: undefined reference to `cpp_ho
st_to_exec_charset(cpp_reader*, unsigned long)'
collect2.exe: error: ld returned 1 exit status
make[2]: *** [cc1.exe] Error 1
make[2]: Leaving directory `/c/esp8266-devkit/Espressif/dl/gcc-5.2.0/build-2/gcc'
make[1]: *** [all-gcc] Error 2
make[1]: Leaving directory `/c/esp8266-devkit/Espressif/dl/gcc-5.2.0/build-2'
make: *** [all] Error 2