本帖最后由 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)
|