1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
有没有人让 USB 在 STM32L552 上作为 VCP 运行?
我们在通过 VCP 将 USB 连接到 PC 的情况下运行系统时遇到问题。我们使用 MXCube 5.6.1 版并使用 USB VCP 创建了一个小项目。VDD-USB Pin接3.3V,系统启动,但PC端检测不到USB。 我们之前将 USB 作为 VCP 在其他几个处理器(STM32F4、STM32F7、STM32H7)上工作,没有任何问题。但是在 L552 上肯定有一些不同的东西在使用相同的固件处理和硬件布局时不起作用。 |
|
相关推荐
1个回答
|
|
我们为任何感兴趣的人提供了一个可行的解决方案:
硬件条件是:
在 CubeMX 配置中执行以下操作:
1) 上电时,在 GPIOS 等初始化完成后,调用以下例程“DoInitUSB”,它为 PVM1(用于 USB)配置 PVM(外设电压监控)中断,如下所示: 无效 DoInitUSB(无效) { static int bInit = TRUE; PWR_PVMTypeDef sConfigPVM; sConfigPVM.PVMType = PWR_PVM_1; sConfigPVM.Mode = PVM_MODE_IT | PVM_RISING_EDGE | PVM_FALLING_EDGE;// 创建电源检测中断 HAL_PWREx_ConfigPVM(&sConfigPVM); //激活周边电压监测 HAL_PWREx_EnablePVM1(); // 激活 USB 电源 HAL_PWREx_EnableVddUSB(); // 等待 2 毫秒 平行延迟(PARA_DELAY_1MS); 平行延迟(PARA_DELAY_1MS); //检查USB插头是否连接: if (READ_BIT(PWR->SR2, PWR_SR2_PVMO1) == 0) // 电源高于 1.2 伏 { HAL_PWREx_EnableVddUSB(); 如果(bInit) { MX_USB_Device_Init(); b初始化=假;// 上电后只做一次 } bPowerIsOn = TRUE; } 别的 { HAL_PWREx_DisableVddUSB(); bPowerIsOn = 假; } } 2) 包括以下回调 fpr PVM 中断: 无效 HAL_PWREx_PVM1Callback() { if (READ_BIT(PWR->SR2, PWR_SR2_PVMO1) == 0) // 电源高于 1.2 伏 { HAL_PWREx_EnableVddUSB(); 如果(bInit) { MX_USB_Device_Init(); b初始化=假; } bPowerIsOn = TRUE; } else // 电源低于 1.2 伏 { HAL_PWREx_DisableVddUSB(); bPowerIsOn = 假; } } 我希望这个设置可以帮助其他人! |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2720 浏览 1 评论
3236 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1807 浏览 1 评论
3645 浏览 6 评论
6033 浏览 21 评论
1334浏览 4评论
209浏览 3评论
196浏览 3评论
对H747I-DISCO写程序时将CN2的st-link复用为usart1,再次烧录时无法检测到stlink怎么解决?
350浏览 2评论
STM32G474RE芯片只是串口发个数据就发烫严重是怎么回事?
442浏览 2评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 14:59 , Processed in 1.116999 second(s), Total 76, Slave 60 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号