你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

NUCLEO - H563ZI 如何打开串口

[复制链接]
dvacos 提问时间:2023-7-31 13:54 / 未解决

我按照规格书配置了usart 3 作为串口,并且电脑可以是被到串口,但是我始终接收不到数据。

并且我还直接接到了串口输出脚PD8 PD9(排除外部连接错误导致的),任然没有数据。

1、确认引脚

image.png

文档明确写明了,ST_Link默认接USART 3的,并且配置好了。

但是我核对了一一下

image.png

image.png

如图,按照文档上的配置 SB24 SB18都要断开才可以啊,那为什么又说默认接好了

2、软件配置

cubemx配置USART 3

image.png

在usart.c中添加下面的代码。

#ifdef __GNUC__
  /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
     set to 'Yes') calls __io_putchar() */
  #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
  #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */
/**
  * @brief  Retargets the C library printf function to the USART.
  * @param  None
  * @retval None
  */
PUTCHAR_PROTOTYPE
{
  /* Place your implementation of fputc here */
  /* e.g. write a character to the EVAL_COM1 and Loop until the end of transmission */
  HAL_UART_Transmit(&huart3, (uint8_t *)&ch, 1, 0xFFFF);

  return ch;
}

keil 5 配置

image.png

然后我在MAIN.C 的 while不断的打LOG,什么都看不见。

为了避免是外部硬件配置问题,我直接用串口街道PD8 PD9上面 ,还是没有LOG

image.png
收藏 评论7 发布时间:2023-7-31 13:54

举报

7个回答
废鱼 回答时间:2023-7-31 14:24:07

从图上看没有看出问题。用示波器或者逻辑分析仪看一下串口波形。另外检查一下晶振,我用的7A3是没有外部晶振的,用的内部晶振,仿真是否进入到串口数据发送函数。

STLNK接口会虚拟一个串口出来,用这个串口监听数据。

dvacos 回答时间:2023-7-31 14:29:36

废鱼 发表于 2023-7-31 14:24
从图上看没有看出问题。用示波器或者逻辑分析仪看一下串口波形。另外检查一下晶振,我用的7A3是没有外 ...

[md]用的是官方的开发板,我点的灯都在正常的闪烁,不太可能是没跑起来。

虚拟串口可以正常识别。

就是一直没有数据,搞不懂。。。

现在试一试仿真

dvacos 回答时间:2023-7-31 15:47:11

我把串口配置到USART 2后,按照一样的套路就可以打印了。。懵逼

还有CubeMX每次都要重置一下我添加的其他文件,即删除keil 5 除ST的文件树内的其他文件,本地还在。

恶心啊

废鱼 回答时间:2023-7-31 16:23:40

dvacos 发表于 2023-7-31 15:47
我把串口配置到USART 2后,按照一样的套路就可以打印了。。懵逼</p>
<p>还有CubeMX每次都要重置一下我添加的 ...

[md]我很少用,我一般都是自己建工程,自己移植需要的驱动。MX一般是测试部分功能的时候用一下。

xmshao 回答时间:2023-8-1 10:25:54
我找了块跟你一样的开发板做了验证测试。


可以  确定 UART3默认就是跟VCP口连在一起的,也不用做跳线调整。
具体的GPIO就是PD8 PD9.  


调用HAL_UART_Transmit(&huart3, (uint8_t *)tx_buffer,  size,0xfff);
可以在串口终端显示字符。  




需要的话,晚点我贴图上来。你再找找原因。
xmshao 回答时间:2023-8-1 10:35:48
[md]我找了一样开发板,使用UART3-PD8/PD9,可以在串口中端看到字符。

【本想贴图进来,实在发不上来
dvacos 回答时间:2023-8-1 16:49:47

xmshao 发表于 2023-8-1 10:35
我找了一样开发板,使用UART3-PD8/PD9,可以在串口中端看到字符。</p>
<p>【本想贴图进来,实在发不上来 ...

[md]有动过SBXX的跳线吗?我一直不行,动了SBXX,断开SB18 SB23 还是USART 3就是不行

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版