搬砖小能手DMA
2021-06-18 17:07
采纳率: 100%
浏览 75

STM32f429 虚拟串口连接状态应该如何获取

开发环境:

硬件平台:正点原子阿波罗开发板,主控芯片STM32F429 (VBus没有状态检测)

软件开发平台:STM32CubeMX 6.2.1 库版本STM32Cube FW_F4 V1.26.0 编译器KEIL5.34.0.0 

我使用STM32CubeMX 配置生成USB虚拟串口工程,调试过程中没有找到usb连接状态和虚拟串口打开状态在哪里查询。

网上找到的教程说找回调函数

void HAL_PCD_ConnectCallback(PCD_HandleTypeDef *hpcd)

void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd)

我找到这两个函数实际测试发现,在usb连接断开或者虚拟串口打开关闭时,函数没有发生调用,

部分网友提示这个函数需要启用VBUS检测才会调用这两个函数,应当查询hUsbDeviceFS.dev_state 的值,

我修改后调试发现这个值在usb连接断开或者虚拟串口打开关闭时并没有发生变化,

我百度找的的办法基本都是这两种之一,求大佬指点。

谢谢!

-------------------------------------------------------------

我发现USB硬件连接的问题使用查询hUsbDeviceFS.dev_state 的值可以解决了,之前调试应该是打断点影响了USB库,现在的问题是怎么查询虚拟串口的打开关闭状态了。

或者应该是通过控制端点发送打开关闭命令来显式切换?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • Jine_GG 2021-06-18 17:34
    已采纳

    HAL_HCD_IRQHandler(HCD_HandleTypeDef *hhcd)

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 有问必答小助手 2021-06-21 17:36

    您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

    如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

    ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

    评论
    解决 无用
    打赏 举报
  • 搬砖小能手DMA 2021-06-21 18:49

    还是没有解决虚拟串口打开与否的状态查询,只有一个回答有些参考价值,先采纳了

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题