[STM32C0] 【STM32C092RC 测评】板载串口调试printf输出

[复制链接]
2372|15
 楼主| 龙鳞铁碎牙 发表于 2025-5-19 18:45 | 显示全部楼层 |阅读模式
本帖最后由 龙鳞铁碎牙 于 2025-5-20 06:25 编辑

拿到一款新的开发板,首先要做的就是打印出串口功能,下面来介绍步骤

1.打开原理图
6680682b0b250666c.png
可以知道,串口为PA2和PA3,为USART2


19388682b0b51351aa.png
和STLINK连接在一起

2,打开cubemx
选择芯片型号STM32C092RCT6
3.使能USART2
PA2,PA3  

4.生成代码


5.打开KEIL
/* USER CODE BEGIN 4 */
int fputc(int ch, FILE *f)
{
  HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xFFFF);
  return ch;
}

重定义串口打印输出
添加头文件
#include <stdio.h>


6. 在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_USART2_UART_Init();
  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
                printf("欢迎来到STM32C092意法半导体公司\r\n");
  }
  /* USER CODE END 3 */
}

11426682baff2d0430.png
可以看到串口输出
欢迎来到STM32C092意法半导体公司
91469682bafdec60f0.png
串口测试完毕,
源代码见附件



58640682bafdfb17e4.png

USART2.zip

230.32 KB, 下载次数: 0

4y1b3 发表于 2025-5-31 23:52 | 显示全部楼层
确认开发板PA2、PA3引脚与USB转TTL模块或ST-LINK虚拟串口正确连接。
小迷糊仙 发表于 2025-6-4 12:31 | 显示全部楼层
感谢分享 学习了
codingtuzi 发表于 2025-6-4 22:36 来自手机 | 显示全部楼层
居然还是中文!
 楼主| 龙鳞铁碎牙 发表于 2025-6-5 06:36 | 显示全部楼层

不限制中英文,这就是我的强大之处
juliestephen 发表于 2025-7-4 17:35 | 显示全部楼层
使用printf函数进行串口调试是一种常见的做法
saservice 发表于 2025-7-4 22:19 | 显示全部楼层
使用HAL库的HAL_UART_Transmit函数将字符发送到串口。
ingramward 发表于 2025-7-10 12:03 | 显示全部楼层
在 Keil 中必须开启 micro library,否则 printf 不会正常工作
jimmhu 发表于 2025-7-10 15:45 | 显示全部楼层
int fputc(int ch, FILE *f)
{
    HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xFFFF);
    return ch;
}
plsbackup 发表于 2025-7-18 12:54 | 显示全部楼层
需要打开使用MicroLIB的选项,这样才能使printf函数正常工作
 楼主| 龙鳞铁碎牙 发表于 2025-7-18 19:31 | 显示全部楼层
plsbackup 发表于 2025-7-18 12:54
需要打开使用MicroLIB的选项,这样才能使printf函数正常工作

是的
vivilyly 发表于 2025-7-18 21:10 | 显示全部楼层
编写printf重定向              
sdCAD 发表于 2025-7-18 22:47 | 显示全部楼层
建议使用 DMA 或非阻塞方式发送
ccook11 发表于 2025-7-19 13:08 | 显示全部楼层
printf 效率较低,频繁使用会影响实时性
houjiakai 发表于 2025-7-19 17:09 | 显示全部楼层
printf() 是 C 标准库中的函数
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

54

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部