Merged with dev0.2_uart1

This commit is contained in:
klassents committed 2024-09-05 05:48:33 +03:00
1 parent 87e881aea1
commit 0ea1ec5b97
7 files changed
+131 -35

No files matched your search

@@ -64,6 +64,21 @@ bool UART_Init(UART_TypeDef* uart,
return true;
}
void UART_Deinit(UART_TypeDef* uart)
{
if (uart == UART_0)
{
__HAL_PCC_UART_0_CLK_DISABLE();
// reconfigure pins to z state
HAL_GPIO_PinConfig(GPIO_0, GPIO_PIN_5 | GPIO_PIN_6, HAL_GPIO_MODE_GPIO_INPUT, HAL_GPIO_PULL_NONE, HAL_GPIO_DS_2MA);
}
else if (uart == UART_1)
{
__HAL_PCC_UART_1_CLK_DISABLE();
// reconfigure pins to z state
HAL_GPIO_PinConfig(GPIO_1, GPIO_PIN_8 | GPIO_PIN_9, HAL_GPIO_MODE_GPIO_INPUT, HAL_GPIO_PULL_NONE, HAL_GPIO_DS_2MA);
}
}
bool UART_IsTransmissionFinished(UART_TypeDef* uart)
{
@@ -78,6 +93,14 @@ bool UART_IsTransmissionFinished(UART_TypeDef* uart)
}
}
void UART_WaitDataTranferCompleteFlag(UART_TypeDef* uart)
{
// с этим флагом есть какая-то доп задержка в стоп-битах длиной почти с бит,
// но можно отслеживать полное завершение отправки посылки
while((uart->FLAGS & UART_FLAGS_TC_M) == 0)
;
}
void UART_WaitTransmission(UART_TypeDef* uart)
{
while (!UART_IsTransmissionFinished(uart)) ;
@@ -38,6 +38,16 @@ bool UART_Init(UART_TypeDef* uart, uint32_t divider,
uint32_t control1, uint32_t control2, uint32_t control3
);
/** Деинициализирует контроллер USART
Функция отключает тактирование модуля и перенастраивает
используемые для модуля выводы портов
\param uart указатель для доступа к UART
*/
void UART_Deinit(UART_TypeDef* uart);
/** Определяет, активен ли передатчик модуля
@@ -54,6 +64,11 @@ bool UART_IsTransmissionFinished(UART_TypeDef* uart);
*/
void UART_WaitTransmission(UART_TypeDef* uart);
/** Ожидает, пока модуль полностью завершит передачу
\param uart указатель для доступа к UART
*/
void UART_WaitDataTranferCompleteFlag(UART_TypeDef* uart);
/** Ожидает, пока модуль примет данные