本帖最后由 dirty123 于 2025-3-1 15:19 编辑
#申请原创#
本篇讲述串口打印功能。
一.原理与准备
1.开发板套件配有一个PMOD扩展板,上面有串口接线端子CN2.硬件接线如下。
2.由扩展板接到主板上,反向找出串口引脚PC10、PC11,查阅datasheet分别为UART3 TX、RX.如下图红框所示。
3.开发板上使用到了STG3692QTR两路复用开关,如上图绿框所示,对应MCU控制引脚如下。我们使用到串口,将这两引脚置高。
二.代码准备
1.串口配置
2.复用开关引脚配置
3.生成代码。在Keil下,切记要勾选MicroLIB如下,要不然输出打印不出来。
4.修改代码。这里在main.c修改,包含添加头文件,串口映射,两路复用开关置高,循环打印串口日志。源文件附在附件见文末。
#include "main.h"
#include "stdio.h"
/*
main函数
*/
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_USART3_UART_Init();
MX_ICACHE_Init();
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_11, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_12, GPIO_PIN_SET);
HAL_Delay(500U);
/* USER CODE BEGIN 2 */
printf("Are You OK !\r\n");
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
printf("Welcome to use STM32L562E_DK Board !\r\n");
HAL_Delay(2000U);
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
/*
串口重映射
*/
int fputc(int ch, FILE *f)
{
HAL_UART_Transmit(&huart3, (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
三.测验
编译烧录,设置打开串口助手,复位开发板,可以看到串口日打印如下。
至此,实现串口日志打印功能,可以方便调试测验。
main.zip
(2.41 KB)
|