STM32CubeIDE无法生成工程和代码
最近又没有stm32开发板申请了,什么时候安排?
STM32f407+TOUCHGFX,用CubeMX生成后编译不通过
STM32 Bootloader提问
目前新项目,MCU采用STM32F407VGT6,文件存在TF卡(SDIO),请问能否通过F4的USB把TF卡里面的txt和excel文件拷贝到U盘?哪个USB可以实现?
STM32F407ZGT6假死现象,看门狗不起作用
keil安装pack中提示Encountered an improper argument. 如何解决
STM32F407VGT6使用PLL倍频后芯片会反复重启
CAN接收丢包
stm32cubide搜索不到.h文件里的文本
谢谢
我也试过主动发起接收,但是不知道应该在哪里加这个机制好点
还有一个问题,主机并不提前知道设备端发过来的字节数,主动请求多少数据呢?
是否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类有什么机制可以做到这样?
请问您这个代码在哪添加?系统如何通知调用到这里的?
我这个是标准库下的操作。我这个操作和中断差不多,是自己调用的,不需要我进行操作。