forked from Elron_dev/elbear_arduino_bsp
Merged with dev_beta
This commit is contained in:
1 parent
079b3c19bc
commit
82fbe4939e
9 files changed
+184
-38
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);
|
||||
|
||||
/** Ожидает, пока модуль примет данные
|
||||
|
||||
|
||||
Reference in new issue
Block a user