ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 апреля
1174146 Топик полностью
il-2 (14.02.2022 16:04, просмотров: 229) ответил AlexBi на Да, что-то похожее на кучу модбасов. Тоже склоняюсь к переходу на манипуляцию битами, минуя HAL. Только еще не понял что делать с обработчиками прерываний, как-то полностью заместить обработчик из HAL-а, или оставить как есть, т.е. писать свою функцию, вызываемую HALом. Что по этому поводу посоветуют опытные товарищи?
Для реализации МОДБАС на STM32 не нужно следить по прерыванию UART за приемом байтов и перезапускать каждый раз таймер. Есть более изящный способ: 

Прием данных по UART следует доверить DMA, желательно в режиме кольцевого буфера (но не обязательно).

Для обнаружения окончания МОДБАС-пакета следует настроить только прерывание UART Idle frame. И именно по нему запускать таймер. Если по окончанию интервала не будет обнаружен прием других данных, то можно считать это концом пакета.