хм. а что крутить то если данных нет ? появились и крути
если есть необходимость по прерываниям работать -
https://github.com/espressif/esp-idf/blob/309ffa5565ad88edc262f2d6fb3e45567192bbb0/examples/peripherals/uart/uart_events/main/uart_events_example_main.c
Да хз, а че не покрутится если ничего не стоит.
Я просто как-то нагородил асинхронщины на 10 тасков, под казалось бы независимые задачи, с блоками, очередями и всей вот этой вот херней, сам в них охренел через пару месяцев, запутался, упал и лицо разбил.
С тех пор я как-то стараюсь лишний раз это не плодить.
Типо прокрутить какой метод аля rs485.IsOperationComplete() ничего особо не стоит, зато если такими методами делать все что получается, можно в одну таску половину приложения уместить, асинхроня только то, что ну прям уже никак не влазит.
Оно просто на первый взгляд так выглядит, вау - просто блочишься и как при синхронной задержке получаешь результат.
А по факту - тебе очереди прокидывать, обрабатывать пустоту или переполнение этих очередей.
Какие-то асинхронные API для всего этого городить. Хз короче, а можно просто булев флаг в прерывании поставить, незащищенность мутексом которого в мк ничего плохого не сделает.
Да по инфе всей засланной - спс.