在使用极海G32A1465评估板时,若要通过printf函数打印信息,通常需要配置串口并重定向printf的输出到串口。
一、极海G32A1465评估板串口特性
极海G32A1465评估板上的LPUART低功耗异步收发传输器支持全双工、异步、NRZ(非归零)串行通信,并具有以下主要特性:
全双工异步通信:支持同时发送和接收数据。
可编程的串口特性:包括数据位(7位、8位、9位或10位)、校验位(偶校验、奇校验、无校验)、停止位(1位或2位)等。
可编程波特率:采样率为4x到32x,支持多种波特率设置。
多种接收器唤醒方法:包括空闲线路唤醒、地址标记唤醒、接收数据匹配等。
自动地址匹配:支持地址标记匹配和空闲线路地址匹配。
可配置空闲长度检测:支持1、2、4、8、16、32、64或128个空闲字符的检测。
中断、DMA或轮询操作:支持多种数据传输和接收方式。
二. 原理图:
三。配置串口
串口正确配置,包括波特率、数据位、停止位和校验位等。
#include "g32a14xx.h" void UART_Init(void) { // 使能UART时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); // 配置UART引脚 GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9; // TX GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStruct); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_10; // RX GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStruct); // 配置UART参数 USART_InitTypeDef USART_InitStruct; USART_InitStruct.USART_BaudRate = 115200; USART_InitStruct.USART_WordLength = USART_WordLength_8b; USART_InitStruct.USART_StopBits = USART_StopBits_1; USART_InitStruct.USART_Parity = USART_Parity_No; USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStruct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, &USART_InitStruct); // 使能UART USART_Cmd(USART1, ENABLE); }
重定向printf
通过重写fputc函数,将printf的输出重定向到串口。
#include <stdio.h> int fputc(int ch, FILE *f) { // 等待发送完成 while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET); // 发送字符 USART_SendData(USART1, (uint8_t)ch); return ch; }
使用printf打印
配置完成后,即可使用printf函数打印信息。
int main(void) { // 初始化串口 UART_Init(); // 使用printf打印 printf("666rn"); while (1) { // 主循环 } }
编译和下载
编译代码并下载到极海G32A1465评估板,通过串口调试工具查看输出。
四.输出结果: