qzc0927 发表于 2024-2-9 20:17

ST NUCLEO-C031C6开发板学习笔记02(串口打印输出)

<div class='showpostmsg'>## ==5:串口通讯==

### 5.1:串口通讯硬件配置

先看下芯片手册,芯片自带2组串口,串口1和串口2 我们使用其中一组来做测试。

!(https://boreyun.oss-cn-shanghai.aliyuncs.com/image-20240204102235713.png)

我们使用PA9和PA10分别做串口的TX脚和RX脚。原理图的位置如下:

!(https://boreyun.oss-cn-shanghai.aliyuncs.com/image-20240204102313970.png)

### 5.2:串口通讯软件配置

首先在CubeMX上配置串口引脚和工作模式。其次是串口通讯参数配置,默认波特率为115200:

!(https://boreyun.oss-cn-shanghai.aliyuncs.com/image-20240204102417992.png)

时钟默认为48M,为单片机最大主频:

!(https://boreyun.oss-cn-shanghai.aliyuncs.com/image-20240204095947863.png)

我们使用的是串口2 ,使用printf打印时,得重新配置的一下程序,单片机输出。

```C
int fputc(int ch, FILE *f)
{
    HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 2);
    return ch;   
}
```

### 5.3:串口通讯单元测试

编写测试代码:

```C
while (1)
{
    /* USER CODE END WHILE */
    /* USER CODE BEGIN 3 */
          HAL_Delay(500);
          printf("123456");
          HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5);          
}
```

打开串口调试助手,查看串口信息,可以看出不断输出“123456”字符串。

!(https://boreyun.oss-cn-shanghai.aliyuncs.com/image-20240204104326056.png)</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                               
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

Jacktang 发表于 2024-2-12 09:54

<p>通过串口助手看串口通讯单元测试是正常的</p>

kevin----- 发表于 2024-2-24 18:17

<p>非常感谢分享</p>
页: [1]
查看完整版本: ST NUCLEO-C031C6开发板学习笔记02(串口打印输出)