ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
27 ноября
1174199 Топик полностью
bnb62 (14.02.2022 18:09, просмотров: 416) ответил AlexBi на Да, что-то похожее на кучу модбасов. Тоже склоняюсь к переходу на манипуляцию битами, минуя HAL. Только еще не понял что делать с обработчиками прерываний, как-то полностью заместить обработчик из HAL-а, или оставить как есть, т.е. писать свою функцию, вызываемую HALом. Что по этому поводу посоветуют опытные товарищи?
Почему-то никто не упомянул про callback функции включенные почти во все HAL обработчики прерываний, которые вам сгенерит Куб, стоит только заказать нужные прерывания. 

Например:


/** * @brief Rx Transfer completed callback. * @param huart UART handle. * @retval None */ __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { /* Prevent unused argument(s) compilation warning */ UNUSED(huart); /* NOTE : This function should not be modified, when the callback is needed, the HAL_UART_RxCpltCallback can be implemented in the user file. */ }

Пишем свою функцию __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { }

Но без "ослабителя" __weak. В main.c. Радуемся. Главное, что халовский обработчик сделает всю рутину сам. А там оччень дохрена всяких нюансов. Это ARM.