STM32F446 USB和串口1 冲突

2019-07-14 13:10发布


如题,F446配置成USB 设备,然后开启串口1 的DMA发送数据,发现USB模块不断重启。
1、#define  VBUS_SENSING_ENABLED 在固件中已经注释掉
2、固件USB初始化已经将USB强制设置为USB设备模式
以上两步是否可以释放PA9和PA10引脚作为UART1的TX和RX?串口1开启为何会造成USB模块不断重启?
请大神指教!
[/tr]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
充电搜索
1楼-- · 2019-07-16 03:46
lining870815844 发表于 2019-4-25 14:26
按照你说的做了以下实验:
PA9配置成输入IO口,USB正常
PA9配置成输出IO口,USB失效(默认低电平?)

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

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

注:测试代码中时钟树可能跟你实际有所不同,测试代码中使用的外部8M HSE by-Pass模式,你需要根据实际进行调整。
lining870815844
2楼-- · 2019-07-16 04:59
充电搜索 发表于 2019-4-25 14:42
刚好手上又快STM32F446-NUCLEO板子,使用HAL库测试了下,没有你所说的现象(测试代码只是简单地将PA9管脚toggle测试USB是否有复位现象),楼主用链接中我给的代码测试下吧,如果你那边还出现USB复位问题,那么就得检查的自己的代码和电路了,除非你将代码和MCU部分原理图贴出来,别人是很难帮到你的。

测试代码链接:https:// ...

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

一周热门 更多>