charkin 0 29 января, 2017 Опубликовано 29 января, 2017 · Жалоба В чем разница между функциями HAL_UART_Transmit_DMA, HAL_UART_Transmit_IT и HAL_UART_Transmit? Понятно, что первая реализует передачу, используя DMA, но в чем еще разница между ней и HAL_UART_Transmit_IT? Правильно ли понимаю, что после вызова HAL_UART_Transmit_DMA процессор сразу же выполняет следующие команды, а передача данных идет в "фоновом" режиме? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 5 30 января, 2017 Опубликовано 30 января, 2017 · Жалоба В чем разница между функциями HAL_UART_Transmit_DMA, HAL_UART_Transmit_IT и HAL_UART_Transmit? Рекомендую обратиться к первоисточнику, т.е. документации. В заголовке этого stmXXXX_hal_uart.c всё подробно расписано. (#) Blocking mode APIs are: (++) HAL_UART_Transmit() (++) HAL_UART_Receive() (#) Non Blocking mode APIs with Interrupt are: (++) HAL_UART_Transmit_IT() (++) HAL_UART_Receive_IT() (++) HAL_UART_IRQHandler() (#) Non Blocking mode functions with DMA are: (++) HAL_UART_Transmit_DMA() (++) HAL_UART_Receive_DMA() (++) HAL_UART_DMAPause() (++) HAL_UART_DMAResume() (++) HAL_UART_DMAStop() Правильно ли понимаю, что после вызова HAL_UART_Transmit_DMA процессор сразу же выполняет следующие команды, а передача данных идет в "фоновом" режиме? Да. Для этого достаточно посмотреть код этой функции - там нет никаких ожиданий. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться