• Система автоматизации с открытым исходным кодом на базе 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
так как это уже указатель.
 
Сверху Снизу