打印
[STM32C0]

【STM32C092RC 测评】2、板载外设——串口

[复制链接]
50|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
      在进行新开发板测试时,我们优先进行了板载外设的串口功能测试。鉴于串口调试功能在整个测试流程中的重要性,其能够持续提供测试状态的关键信息输出,因此,我们采用printf打印功能作为测试过程中的状态监测手段,这是首要进行串口功能调试的核心考量。
      当前的ST开发板普遍集成了调试器。ST-LINK均支持虚拟串口功能。本次任务旨在实现单片机串口与虚拟串口的连接,并利用板载调试器与PC机进行通信。随后,通过PC端上位机的串口调试工具进行数据监控与分析。
      我们先看一下这款开发板的虚拟串口的位置:
      STlink的虚拟串口主要连接到PA2和PA3,如下图:
      在STM32CubeMX中,观察到两个引脚可配置为UART2功能,我们打开UART2功能,可以看到默认引脚如下:
      如果没有特殊要求可以直接使用默认配置,波特率115200:
      接下来我们生成代码,然后加入如下底代码配置printf:
<p>#if defined(__ICCARM__)</p><p>__ATTRIBUTES size_t __write(int, const unsigned char *, size_t);</p><p>#endif /* __ICCARM__ */</p><p>#if defined(__ICCARM__)</p><p>/* New definition from EWARM V9, compatible with EWARM8 */</p><p>int iar_fputc(int ch);</p><p>#define PUTCHAR_PROTOTYPE int iar_fputc(int ch)</p><p>#elif defined ( __CC_ARM ) || defined(__ARMCC_VERSION)</p><p>/* ARM Compiler 5/6*/</p><p>#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)</p><p>#elif defined(__GNUC__)</p><p>#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)</p><p>#endif /* __ICCARM__ */</p>

      注意printf属于标准库<stdio.h>里面的内容,前面要包含以下;
      接下来重写printf,使其与UART2关联:
<p>PUTCHAR_PROTOTYPE</p><p>{</p><p>  /* Place your implementation of fputc here */</p><p>  /* e.g. write a character to the USART3 and Loop until the end of transmission */</p><p>  HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xFFFF);</p><p>  return ch;</p><p>}</p>

      接下来我们在初始化阶段打印“21ic C092 Test Start!”,然后可以看到串口调试工具在每次复位看到:

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

143

帖子

0

粉丝