搜索
12
返回列表 发新帖
楼主: miraclexue

[已解决] STM32F446 USB和串口1 冲突

[复制链接]

该用户从未签到

133

主题

4688

帖子

239

蝴蝶豆

版主

最后登录
2021-4-10
发表于 2017-12-6 10:55:46 | 显示全部楼层
楼主,看一下红色圈标注的。如果USB VBUS配置的话有会影响,这个引脚可以不进行配置。串口方面要考虑是否进行了CTS和RTS的配置。



截图_1.png

回复

使用道具 举报

该用户从未签到

0

主题

132

帖子

20

蝴蝶豆

金牌会员

最后登录
2020-9-27
发表于 2017-12-6 11:09:42 | 显示全部楼层
miraclexue 发表于 2017-12-5 19:45
你好,感谢这么详细的回复。我用的是std标准库,单步调试GCCFG寄存器的novbussense位确实置1了,这也是我 ...

楼主可以先不使用PA9管脚,在使用USB的情况下并且关闭VBUS_SENSING功能的情况下,将PA9管脚设为GPIO输出试试,测试下toggle PA9管脚会不会引起USB复位?通过这种测试PA9管脚是否能独立正常工作。PA10先不急着用,等测试结果出来后再看。

如果PA9会引起复位,就得找你的代理帮忙看。
如果不会,那么就是你串口设置本身可能存在问题,检查串口设置,串口使用了那些管脚,与USB管脚有无冲突?

评分

参与人数 1ST金币 +2 收起 理由
miraclexue + 2 很给力!

查看全部评分

回复

使用道具 举报

该用户从未签到

16

主题

87

帖子

0

蝴蝶豆

高级会员

最后登录
2021-3-29
 楼主| 发表于 2017-12-6 19:46:19 | 显示全部楼层
安 发表于 2017-12-6 10:55
楼主,看一下红色圈标注的。如果USB VBUS配置的话有会影响,这个引脚可以不进行配置。串口方面要考虑是否进 ...

串口1的硬件流控制是None,没有配置,但是串口1和PA9这个确实有影响。
做了以下实验:
PA9配置成输入IO口,USB正常
PA9配置成输出IO口,USB失效(默认低电平?)
PA9配置成输出IO口:
PA9置为高电平,USB正常
PA9置为低电平,USB失效
目前看来PA9貌似是低电平,USB就失效。但是VUSSENSing已经关闭,难道不起作用吗?
回复

使用道具 举报

该用户从未签到

16

主题

87

帖子

0

蝴蝶豆

高级会员

最后登录
2021-3-29
 楼主| 发表于 2017-12-6 19:47:48 | 显示全部楼层
任风吹吹 发表于 2017-12-6 11:09
楼主可以先不使用PA9管脚,在使用USB的情况下并且关闭VBUS_SENSING功能的情况下,将PA9管脚设为GPIO输出 ...

按照你说的做了以下实验:
PA9配置成输入IO口,USB正常
PA9配置成输出IO口,USB失效(默认低电平?)
PA9配置成输出IO口:
PA9置为高电平,USB正常
PA9置为低电平,USB失效
目前看来PA9貌似是低电平,USB就失效。但是VUSSENSing已经关闭,难道不起作用吗?
回复

使用道具 举报

该用户从未签到

0

主题

132

帖子

20

蝴蝶豆

金牌会员

最后登录
2020-9-27
发表于 2017-12-7 10:01:51 | 显示全部楼层
miraclexue 发表于 2017-12-6 19:47
按照你说的做了以下实验:
PA9配置成输入IO口,USB正常
PA9配置成输出IO口,USB失效(默认低电平?)

刚好手上又快STM32F446-NUCLEO板子,使用HAL库测试了下,没有你所说的现象(测试代码只是简单地将PA9管脚toggle测试USB是否有复位现象),楼主用链接中我给的代码测试下吧,如果你那边还出现USB复位问题,那么就得检查的自己的代码和电路了,除非你将代码和MCU部分原理图贴出来,别人是很难帮到你的。

测试代码链接:https://pan.baidu.com/s/1geWQEif

注:测试代码中时钟树可能跟你实际有所不同,测试代码中使用的外部8M HSE by-Pass模式,你需要根据实际进行调整。

评分

参与人数 1ST金币 +2 收起 理由
miraclexue + 2 很给力!

查看全部评分

回复

使用道具 举报

该用户从未签到

16

主题

87

帖子

0

蝴蝶豆

高级会员

最后登录
2021-3-29
 楼主| 发表于 2017-12-8 16:46:46 | 显示全部楼层
任风吹吹 发表于 2017-12-7 10:01
刚好手上又快STM32F446-NUCLEO板子,使用HAL库测试了下,没有你所说的现象(测试代码只是简单地将PA9管脚t ...

非常感谢您的回复和提供的代码,经过咨询代理,找到了问题所在:
1、标准库中的USB库对于关闭VBUS有缺陷,要关闭VBUS,除了关闭VBUSSENSING以外,还需要自己添加对GOTGCTL寄存器的第6位和第7位的设置(HAL库例程里面有)
2、HAL库没有这个问题
3、建议以后用HAL库

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2 结贴奖励

查看全部评分

回复

使用道具 举报

该用户从未签到

0

主题

31

帖子

0

蝴蝶豆

初级会员

最后登录
2021-10-21
发表于 2020-6-4 17:00:00 | 显示全部楼层

时隔几年,又回到了这个帖子。移植官方DFU,查了一切问题,最终发现是#define VBUS_SENSING_ENABLED这句的问题(耗时1天半),注释掉,可以进入DFU模式,无语啊。继续看下资料,找找这个代码代表什么意思。
回复

使用道具 举报

该用户从未签到

0

主题

1

帖子

0

蝴蝶豆

初级会员

最后登录
2020-12-13
发表于 2020-11-23 12:56:24 | 显示全部楼层
任风吹吹 发表于 2017-12-7 10:01
刚好手上又快STM32F446-NUCLEO板子,使用HAL库测试了下,没有你所说的现象(测试代码只是简单地将PA9管脚t ...

大佬,446驱动usb的代码能不能给俺一份参考下,跪求
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-29 18:57 , Processed in 1.207004 second(s), 39 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表