在使用极海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评估板,通过串口调试工具查看输出。
四.输出结果:

我要赚赏金
