• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Решено Вынес чтение памяти в отдельную функцию - стало всё зависать. Что делать?

de1m

New member
Всем привет,
собственно всё написано в заголовке. Надо читать память, чтобы понять есть ли уже настройки для wifi.
Так как эти настройки надо читать так-же и в другом месте, я вынес чтение и запись память и в отдельный файл.

user_main.c. Часть функции
Код:
int ICACHE_FLASH_ATTR isClient(void){
    //Read config from flash
    struct wCLIENTCFG wConfAct;
    struct co2sen co2Conf;

    os_printf("IsCLient func check\n");

    readWifiSetting(wConfAct);
  os_printf("IsCLient func check2\n");
Функция для чтения назвается "readWifiSetting()";
flashread.c
Код:
void ICACHE_FLASH_ATTR readWifiSetting(struct wCLIENTCFG *wConf){

    int readwifi = spi_flash_read((wConfAddr*SPI_FLASH_SEC_SIZE), (uint32*)&wConf, sizeof(struct wCLIENTCFG));
    #ifdef DEBUG
        if(readwifi == SPI_FLASH_RESULT_ERR){
            os_printf("\nRead wifi setting failed...\n");
        } else {
            os_printf("(12) - read wifi Config from flash: %d\n", readwifi);
        }
    #endif
}
В консоль выдаёт вот это
Start:
RGB: 65536,65536,65536
Start Mode Check
IsCLient func check
(12) - read wifi Config from flash: 0
а потом перезагружается. Тоесть память читает, но дальше ничего не делает, кто знает, что может быть? Может я не так функцию написал?
 

de1m

New member
Проблема решена и находится тут
Код:
(uint32*)&wConf
должно быть
Код:
(uint32*)wConf
так как это уже указатель.
 
Сверху Снизу