Periph-Voilier/MyDrivers/MyUSART.c
2020-11-04 09:27:31 +01:00

63 lines
1.7 KiB
C

#include "MyUSART.h"
#include "stm32f1xx_ll_bus.h" // Pour l'activation des horloges
#include "stm32f1xx_ll_usart.h"
/**
* @brief Active l'horloge et règle les paramètres de transmission
* @note Fonction à lancer avant toute autre.
* @param USART_TypeDef UsDollar : indique le usart à utiliser par le uC, USART1, USART2 ou USART3
* @retval None
*/
void MyUSART_Conf(USART_TypeDef * USART, int TransferDir)
{
LL_USART_InitTypeDef My_LL_USART_Init_Struct;
// Validation horloge locale
if (USART==USART1) LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_USART1);
else if (USART==USART2) LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_USART2);
else LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_USART3);
//Initialisation de l'USART
LL_USART_StructInit(&My_LL_USART_Init_Struct);
My_LL_USART_Init_Struct.TransferDirection = TransferDir;
LL_USART_Init(USART, &My_LL_USART_Init_Struct);
}
/**
* @brief Autorise les interruptions de TXE
* @note
* @param USART_TypeDef UsDollar : indique le usart à utiliser par le uC, USART1, USART2 ou USART3
* @retval None
*/
void MyUSART_IT_Enable(USART_TypeDef * USART)
{
LL_USART_EnableIT_TXE(USART);
}
/**
* @brief Interdit les interruptions de TXE
* @note
* @param USART_TypeDef UsDollar : indique le usart à utiliser par le uC, USART1, USART2 ou USART3
* @retval None
*/
void MyUSART_IT_Disable(USART_TypeDef * USART)
{
LL_USART_DisableIT_TXE(USART);
}
/**
* @brief Transmet 8bits de donnée
* @note
* @param USART_TypeDef UsDollar : indique le usart à utiliser par le uC, USART1, USART2 ou USART3
* @retval None
*/
void MyUSART_Transmit_Data_8b(USART_TypeDef * USART, int data)
{
LL_USART_TransmitData8(USART, data);
}