#include "RFOutput.h" #include char buf[100]; void emetteur_rf_init(void){ LL_USART_InitTypeDef My_LL_Usart_Init_Struct; LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_USART1); LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOA); LL_GPIO_InitTypeDef tx; tx.Mode = LL_GPIO_MODE_ALTERNATE; tx.OutputType = LL_GPIO_OUTPUT_PUSHPULL; tx.Speed = LL_GPIO_SPEED_FREQ_LOW; tx.Pin = LL_GPIO_PIN_9; LL_GPIO_Init(GPIOA, &tx); LL_GPIO_InitTypeDef pa11_init_conf; pa11_init_conf.Mode = LL_GPIO_MODE_OUTPUT; pa11_init_conf.OutputType = LL_GPIO_OUTPUT_PUSHPULL; pa11_init_conf.Speed = LL_GPIO_SPEED_FREQ_LOW; pa11_init_conf.Pin = LL_GPIO_PIN_11; LL_GPIO_Init(GPIOA, &pa11_init_conf); LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOA); My_LL_Usart_Init_Struct.BaudRate = 9600; My_LL_Usart_Init_Struct.DataWidth = LL_USART_DATAWIDTH_8B ; My_LL_Usart_Init_Struct.HardwareFlowControl = LL_USART_HWCONTROL_NONE; My_LL_Usart_Init_Struct.OverSampling = LL_USART_OVERSAMPLING_16; My_LL_Usart_Init_Struct.Parity = LL_USART_PARITY_NONE; My_LL_Usart_Init_Struct.StopBits = LL_USART_STOPBITS_1; My_LL_Usart_Init_Struct.TransferDirection = LL_USART_DIRECTION_TX_RX ; LL_USART_Init(USART1,&My_LL_Usart_Init_Struct); LL_USART_Enable(USART1); } void emetteur_send_bytes(char* buf, int len){ LL_GPIO_SetOutputPin(GPIOA,LL_GPIO_PIN_11); for(int i = 0; i < len; i++){ LL_USART_TransmitData8(USART1, buf[i]); while(!LL_USART_IsActiveFlag_TXE(USART1)); } LL_GPIO_ResetOutputPin(GPIOA,LL_GPIO_PIN_11); } void emetteur_send_message(int rouli_bon, int alimentation_bon, float angle_voile){ int len = sprintf(buf, "Alim bon: %d, Rouli bon: %d, Angle de voile: %2f\r\n", alimentation_bon, rouli_bon, angle_voile); emetteur_send_bytes(buf, len); }