STM32F103C8T6 串口3(USART3) 只能发不能收

问题原因:

今天因为上述问题 困扰一天!最后发现是 PB8/9(配置输出)硬件短路了!

        

问题现象:

STM32F103C8T6 串口3(USART3) 只能发不能收!接收引脚电平是一半电平

问题查找经过:

1、怀疑硬件问题,就仔细查找了串口1-3的硬件,没有任何问题,其他硬件没有查找!折腾好久!确认串口硬件无问题。

2、怀疑软件问题,驱动代码由STM32-CubeMX生成的,怀疑率较低!仔细检查配置没问题。

3、怀疑该芯片该串口3有特殊地方。是不是踩到坑了,查找规格书及网络搜索,网上也有人遇到类似问题,但问题原因各种各样软件,硬件问题都有!但与我的都不符合!

4、最后无奈,重新建立工程配置STM32-CubeMX,只配置串口,测试发现问题解决了!锁定问题是软件问题!按照旧工程项目配置完整后还是有问题!那就锁定其他配置引起的问题!就按部就班一点一点配置,配置到PB8/9引脚为输出时,问题浮现!所以锁定是这两个引脚有问题,仔细检查硬件发现短路了,短路解除,问题解决!这两个引脚是I2C复用功能口与串口3内部电路有关联!

查找总结:

1、确认硬件无误!

2、确认软件无误!

3、缩小问题大类,再缩小问题范围。

4、屏蔽其他任何与问题无关的障碍,缩小检查范围!

版权声明:本文为CSDN博主「匠在江湖」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_46672094/article/details/122512358

匠在江湖

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

MDK 分散加载文件剖析(一)

1、何为分散加载? 1.1 简介 分散加载就是我们开发者能指定你的 代码 或者 数据变量 到指定的内存空间中运行。通知链接器把程序的某一部分连接在存储器的某个地址空间,我们可以通过编写一个分散加载文件来指定 ARM

Arduino接收串口发送的数据

一、我们可以通过Arduino发送数据给电脑通过串口监视器进行观察 二、可以通过调用函数Serial.available()来判断有没有数据发送过来,从而接收数据。 三、函数Serial.read()可以读取串口