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

STM32F407的USART1只能映射到PB6-7,如果选择PA9-10就乱码

[复制链接]
wenyangzeng 提问时间:2015-7-3 21:05 /
阅读主题, 点击返回1楼
收藏 评论29 发布时间:2015-7-3 21:05
29个回答
watershade 回答时间:2015-7-5 22:54:36
用MX验证了一下,默认情况下在F4上PA9配置的是VBUS_FS,PA10连接的是OTD_FS_ID。而且有别针锁住,说明硬件有关联。和楼主的说法一致。但是PB6其实也连接到audio相关的CS43L22上了。尚不清楚为什么配置到PB6没问题。

不过我坚持以为是外围电路引起的。请注意PA9充当的是VBUS,也连接到了EMIF02-USB03F2这个芯片。这个片子是USB保护芯片,如果你想确认是不是它影响的话你可以尝试吧PA9设置成浮空输出看看电平是什么样子。我还没做实验,不过我估计很难拉低。不过没有试验过。

没有实验就没有发言权,以上只能算是估计。
祝你好运,你自己的板子PA9和PA10的状态看了吗?
watershade 回答时间:2015-7-5 23:08:43
不好意思,我的分析有问题:PA9当然能拉底。可能是受图中电路影响。如果方便可以焊去R56试试。

PA9连接部分

PA9连接部分
wenyangzeng 回答时间:2015-7-6 07:41:35
本帖最后由 wenyangzeng 于 2015-7-6 09:52 编辑

应该是C49充电把PA9一直拉高而出现锯齿波。20楼中的图2锯齿波可以很好解释C49在其中所起的关键作用。
未命名.JPG
北斗光寒 回答时间:2015-7-6 08:51:50
貌似有些意思   回头试试
回答时间:2015-7-6 09:10:05
从波形来看,还有硬件电路的分析,应该是外设影响的。楼主可以测试一下接收是否正常。如果接收正常,说明发送引脚受到外设影响。
wjandsq 回答时间:2015-7-6 10:04:38

USB FS 和USART1(PA9 PA10)能同时用,本人已经测试过。

本帖最后由 wjandsq 于 2015-7-6 10:08 编辑

USART1(PA9 PA10)不可能有问题。连接OUT的线割掉就好了,电容影响发送。
wenyangzeng 回答时间:2015-7-6 22:29:05
本帖最后由 wenyangzeng 于 2015-7-6 22:45 编辑

为真正找出问题所在,临时编制一小段代码,每100mS让GPIOC_9翻转一次,用示波器观察波形周期。
while(1)
{
delay_ms(100);
GPIOC->ODR ^=0X0200;
};
照片 002.jpg
  图1 STM32F407-STM32F4-DISCOVERY上的正确波形

照片 003.jpg
         图2 故障机上的波形:2个延时周期只有7.2格
     现在终于能看到“庐山真面目”了,故障机MCU的工作周期比STM32F407-STM32F4-DISCOVERY缩短了1.2倍左右。这是导致故障机波特率偏高的原因。更换一只晶振后故障排除。就是还有点不明白的是用示波器直接测量晶振的工作频率(参见20楼的图6、 图7)为何2机的结果却都非常接近?
    至此,本贴终于得到圆满解决。换一只晶振所花费的时间不足1分钟,查找故障所花费的时间累计不少于24小时。虽然表面上看比例太悬殊。但能有一次这样的过程,机会实在难得,让我们长进不少。同时还节外生枝,导出对STM32F407-STM32F4-DISCOVERY的误判。     期间得到版主和许多网友的热情帮助。非常感谢!



watershade 回答时间:2015-7-10 22:32:05
wenyangzeng 发表于 2015-7-6 07:41
应该是C49充电把PA9一直拉高而出现锯齿波。20楼中的图2锯齿波可以很好解释C49在其中所起的关键作用。 ...

你说的很有可能,毕竟4.9uF也不小了。试过了吗?
watershade 回答时间:2015-7-10 22:36:08
wenyangzeng 发表于 2015-7-6 22:29
为真正找出问题所在,临时编制一小段代码,每100mS让GPIOC_9翻转一次,用示波器观察波形周期。
while(1)
{

楼主我不明白,那为什么你说PB可以PA不可以。难道你说的是你之前板子的晶振有问题?
又及,你换的是同一批次的还是更换了别的型号的?
wenyangzeng 回答时间:2015-7-12 08:53:31
watershade 发表于 2015-7-10 22:36
楼主我不明白,那为什么你说PB可以PA不可以。难道你说的是你之前板子的晶振有问题?
又及,你换的是同一 ...

回复楼上,故障经过大概是这样的:我的工程板绘制时USART1是接PA口,无法改接PB口进行验证。8M晶振频率偏高导致通讯失败后,用一片STM32F407DISCOVERY板来对比调试,恰好这片板的PA9连接了一部分外设,其中就有那只C49的电解电容,由于这只电容的滤波作用让PA口输出波形严重失真,得到这片板上的PA口接USART1也是失败的结论,而PB口由于没有那只滤波电容所以通讯成功。
      因为找到STM32F407DISCOVERY板PA口通讯错误的原因,才回过头来查找到工程板是晶振不良引起通讯失败的原因。同样是PA口通讯失败,原因却是不同的。
123

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版