diff --git a/EVT/EXAM/SRC/Peripheral/inc/ch32v00x_usart.h b/EVT/EXAM/SRC/Peripheral/inc/ch32v00x_usart.h index a6be0db3..af5b6238 100644 --- a/EVT/EXAM/SRC/Peripheral/inc/ch32v00x_usart.h +++ b/EVT/EXAM/SRC/Peripheral/inc/ch32v00x_usart.h @@ -164,6 +164,7 @@ void USART_ReceiverWakeUpCmd(USART_TypeDef *USARTx, FunctionalState NewSta void USART_LINBreakDetectLengthConfig(USART_TypeDef *USARTx, uint16_t USART_LINBreakDetectLength); void USART_LINCmd(USART_TypeDef *USARTx, FunctionalState NewState); void USART_SendData(USART_TypeDef *USARTx, uint16_t Data); +void USART_SendString(USART_TypeDef *USARTx, const uint8_t *String); uint16_t USART_ReceiveData(USART_TypeDef *USARTx); void USART_SendBreak(USART_TypeDef *USARTx); void USART_SetGuardTime(USART_TypeDef *USARTx, uint8_t USART_GuardTime); diff --git a/EVT/EXAM/SRC/Peripheral/src/ch32v00x_usart.c b/EVT/EXAM/SRC/Peripheral/src/ch32v00x_usart.c index 246e8e78..b9bfa4ee 100644 --- a/EVT/EXAM/SRC/Peripheral/src/ch32v00x_usart.c +++ b/EVT/EXAM/SRC/Peripheral/src/ch32v00x_usart.c @@ -427,6 +427,23 @@ void USART_SendData(USART_TypeDef *USARTx, uint16_t Data) USARTx->DATAR = (Data & (uint16_t)0x01FF); } +/********************************************************************* + * @fn USART_SendString + * + * @brief Transmits String through the USARTx peripheral. + * + * @param USARTx - where x can be 1 to select the USART peripheral. + * *String - the string you want to send. + * + * @return none + */ +void USART_SendString(USART_TypeDef *USARTx, const uint8_t *String) { + while (*String) { + USART_SendData(USARTx, *String++); + while (USART_GetFlagStatus(USARTx, USART_FLAG_TXE) == RESET); + } +} + /********************************************************************* * @fn USART_ReceiveData *