USB初始化函数很简单,将USB句柄的设备类指针置NULL,同时将USB的描述符加载上去,将USB设备状态置为默认状态,该函数里面的id目前不清楚是作何用,最后调用USB_LL_Init()函数来初始化底层驱动。USB器件库中USB设备有四种状态,定义在usbd_def.h文件中,如下: /* Device Status */ #define USBD_STATE_DEFAULT 1 #...
#define USBD_STATE_DEFAULT 1 //初始化状态 #define USBD_STATE_ADDRESSED 2 //建立地址 #define USBD_STATE_CONFIGURED 3 //配置完成,连接成功 #define USBD_STATE_SUSPENDED 4 //usb挂起,断开成功 1. 2. 3. 4. 5. 检测USB状态的函数 void VCP_Status(void) { static uint8_t old_status = 0;...
//USB 状态 extern vu8 bDeviceState;//USB 连接 情况 extern USBD_HandleTypeDef hU***DeviceFS;in...
然后就可以在代码里用这个来判断是否有连接了: if(hUsbDeviceFS.dev_state==USBD_STATE_CONFIGURED) 主要有这几个状态: /* Device Status */#defineUSBD_STATE_DEFAULT 0x01U#defineUSBD_STATE_ADDRESSED 0x02U#defineUSBD_STATE_CONFIGURED 0x03U#defineUSBD_STATE_SUSPENDED 0x04U 如果出现找不到hUsbDevic...
STM32Cube在Main⾥判断USB是否已连接到电脑⾸先添加这两个Includes:#include "usbd_def.h"#include "usbd_hid.h"然后就可以在代码⾥⽤这个来判断是否有连接了:if(hUsbDeviceFS.dev_state==USBD_STATE_CONFIGURED)主要有这⼏个状态:/* Device Status */ #define USBD_STATE_DEFAULT 0x01U #de...
再按键发送,就发送不成功了,我查看USB的dev_state=USBD_STATE_SUSPENDED,也就是USB进入SUSPENDED模式...
#define USBD_STATE_SUSPENDED 0x04U /* EP0 State */ #define USBD_EP0_IDLE 0x00U #d...
由上图可知,PC通过虚拟串口发送数据到STM32 usb口,STM32再通过usart1发送数据到PC串口。我们做项目时,只用USB虚拟串口即可。所以我们现在需要把串口发送部分删除。把USB做为一个COM口来使用。我们要如何使用这个USB口呢?demo中是把USB发送数据做了一个缓存,先把要发送的数据存入缓存中,然后由USB自动发送出去。而接...
; i++) { __NOP(); } if (__HAL_PCD_IS_PHY_SUSPENDED(hpcd)) /* when set then false resume condition*/ { __HAL_USB_HS_EXTI_CLEAR_FLAG(); __HAL_USB_HS_EXTI_ENABLE_IT(); USBD_LL_Suspend(hpcd->pData); /*Enter in STOP mode */ if (hpcd->Init.low_power_enable) { /...
它处理所有USB内核状态的变化, typedefenum { HOST_IDLE =0, HOST_DEV_ATTACHED, HOST_DEV_DISCONNECTED, HOST_DETECT_DEVICE_SPEED, HOST_ENUMERATION, HOST_CLASS_REQUEST, HOST_CLASS, HOST_CTRL_XFER, HOST_USR_INPUT, HOST_SUSPENDED, HOST_ERROR_STATE }HOST_State; ...