本帖最后由 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, 下载次数: 0)
 
 
 
 
 
  |