说明:驱动基于STm32G031K6测试,其他型号需自行做改动。
串口1的初始化:
//使用串口1,通过中断和DMA进行数据收发。DMA的初始化另作说明
void STM32LLUart1Init(void)
{
LL_USART_InitTypeDef UART_InitStruct = {0};
LL_GPIO_InitTypeDef GPIO_InitStruct = {0};
LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOA); //使能GPIO时钟
LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_USART1); //使能串口1时钟
GPIO_InitStruct.Pin = bspUART1_TX_PIN; //TXPin指定
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE; //io模式配置为复用模式
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH; //设置为高速率
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL; //设置为推挽输出
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO; //不带上拉
GPIO_InitStruct.Alternate = LL_GPIO_AF_1; //选择复用IO功能
LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
GPIO_InitStruct.Pin = bspUART1_RX_PIN; //T