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

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扩展软件包
关注我们
st-img 微信公众号
st-img 手机版