CW32L010是一款集成了丰富功能的低功耗微控制器,其串口输出功能是通过其内部的通用异步收发器(UART)实现的。
一、串口硬件资源CW32L010提供了二路低功耗UART,这些UART接口支持异步全双工、同步半双工和单线半双工模式,以及多机通信。
二、串口配置与初始化在使用CW32L010的串口输出功能之前,需要进行相应的配置与初始化。通常包括设置波特率、数据位、停止位、校验位等参数,以及配置相关的GPIO引脚。
波特率设置:波特率是指串口通信的速率,CW32L010的UART接口支持广泛的波特率选择,可以通过小数波特率发生器提供精确的波特率。数据位设置:数据位是指串口通信中每个数据帧的位数,CW32L010支持标准的数据位长度,如7位或8位。停止位设置:停止位用于标识数据帧的结束,CW32L010支持1位或2位停止位的选择。校验位设置:校验位用于检测数据传输中的错误,CW32L010支持无奇偶校验、奇校验和偶校验三种模式。GPIO引脚配置:需要将指定的GPIO引脚配置为UART功能,包括TX(发送)和RX(接收)引脚。
三、串口通信的实现在配置和初始化完成后,就可以通过CW32L010的UART接口进行串口通信了。这通常包括数据的发送和接收两个过程。
数据发送:通过调用相关的UART发送函数,将数据帧发送到串口总线上。CW32L010的UART接口支持硬件数据流控制,可以在发送过程中自动处理数据的流动。数据接收:通过轮询或中断的方式,接收来自串口总线的数据帧。当接收到数据时,可以触发中断或产生状态标志,以便及时处理接收到的数据。
四、代码:
串口配置: void UART_Configuration(void) { UART_InitTypeDef UART_InitStructure = {0}; UART_InitStructure.UART_BaudRate = DEBUG_UART_BaudRate; UART_InitStructure.UART_Over = UART_Over_16; UART_InitStructure.UART_Source = UART_Source_PCLK; UART_InitStructure.UART_UclkFreq = DEBUG_UART_UclkFreq; UART_InitStructure.UART_StartBit = UART_StartBit_FE; UART_InitStructure.UART_StopBits = UART_StopBits_1; UART_InitStructure.UART_Parity = UART_Parity_No ; UART_InitStructure.UART_HardwareFlowControl = UART_HardwareFlowControl_None; UART_InitStructure.UART_Mode = UART_Mode_Rx | UART_Mode_Tx; UART_Init(DEBUG_UARTx, &UART_InitStructure); }
主函数:
//配置RCC RCC_Configuration(); //配置GPIO GPIO_Configuration(); //配置UART UART_Configuration(); //使能UARTx RC中断 UART_ITConfig(DEBUG_UARTx, UART_IT_RC, ENABLE); UART_SendString(DEBUG_UARTx, "\r\nCW32L010 UART Interrupt\r\n"); printf("\r\nCW32L010\r\n"); UART_ClearITPendingBit(CW_UART2, UART_IT_RC); while(1) { //轮询收发 TxRxBufferSize = UART_RecvBuf_Polling(DEBUG_UARTx, TxRxBuffer); UART_SendBuf_Polling(DEBUG_UARTx, TxRxBuffer, TxRxBufferSize); }
五.原理图:
串口芯片CH340芯片连接图:
TYPE C接口输入:
六.输出结果 :