
新手小白,SMT32 TP Tool Windows无法安装驱动怎么处理
cubeide登录不了,软件连不上网
请教为什么中断回调函数中不能使用接收中断开启函数
基于STM32F103的HAL库实现USB(HID) OTA升级
bootloader占用的flash起始地址一般在哪,从0x08000000地址开始的flash能够被用户使用吗
如何用c#使用ST25R3911DISCOComm.dll来读取和写入NDEF区的数据,需要相关例程,感谢各位大佬拯救一下我啊!????
USBx配置有哪些小的需要注意的细节?
如何使用window程序对控制参数进行调整。
STM32U5 驱动库从1.6.0更新至1.7.0本可以正常运行的代码出现问题
PWM+DMA求助
谢谢
我也试过主动发起接收,但是不知道应该在哪里加这个机制好点
还有一个问题,主机并不提前知道设备端发过来的字节数,主动请求多少数据呢?
是否cdc 的vcp类已经有相关的机制,求指导
你要看看相应协议。
HOST找device要数据,device有就给,没有就先拒绝。HOST会不停找你要的,至于你给多少数据过去,它会数据包的情况来判断,比方收到一包不满的数据或零数据包它就视为此次传输结束。
static uint16_t VCP_DataRx (uint8_t epnum,uint8_t* Buf, uint32_t Len)
{
switch(epnum+0x80)
{
case CDC_IN_EP1:
USART_rx(Buf, Len);
break;
default:
break;
}
return USBD_OK;
}
我们在sof中每1ms向从机请求一次从机数据,
但主机并不会提前知道从机每一个包会发多少数据过来,
我这个USBH_CDC_Receive函数应该指定多少的长度?
USBH_StatusTypeDef USBH_CDC_Receive(USBH_HandleTypeDef *phost,
uint8_t *pbuff,
uint32_t length);
还有另外一个问题,为什么PC端的vcp主机(窗口调试助手)没有定时轮询从机(用Bus Hound抓数据观察),但也能像串口中断那样收到从机的数据??请指导
这个要先主动轮询从机,从机回复数据之后才会进callback,
主机不轮询从机的话,尽管从机不断往上发数据,主机也不会进这个callback
不知道有没有相关的host vcp例程参考
现在在这里每1ms,向从设备请求一次数据
/**
* @brief SOF callback.
* @param hhcd: HCD handle
* @retval None
*/
void HAL_HCD_SOF_Callback(HCD_HandleTypeDef *hhcd)
{
USBH_LL_IncTimer(hhcd->pData);
USBH_CDC_Receive(&hUsbHostFS, USBHTxBuf, 64);
}
但是请求数据的长度改如何合适?主机提前不会知道从机会发多少数据
USBH_StatusTypeDef USBH_CDC_Receive(USBH_HandleTypeDef *phost,
uint8_t *pbuff,
uint32_t length);
另外,pc端的host 窗口调试助手好像没有主动轮询设备也能及时收到从机主动发的数据(用Bus Hound抓取没看到轮询的包),为什么呢?是不是CDC vcp类有什么机制可以做到这样?
请问您这个代码在哪添加?系统如何通知调用到这里的?
我这个是标准库下的操作。我这个操作和中断差不多,是自己调用的,不需要我进行操作。