STM32的USB与SPI Flash通信详解
1. USB 通信部分
1.1 结构长度检查
在某些代码中,会对结构的长度进行检查。例如以下代码片段:
0213: }
0214: return 1;
0215: }
0216: return 0;
0217: }
第210 - 214行检查结构的长度,如果长度不符合要求(第212行),则返回失败;否则,返回1表示“已处理”状态(第214行)。
1.2 USB 数据接收回调函数 cdcacm_data_rx_cb()
当数据通过总线发送到 STM32 MCU 时,USB 基础设施会调用此回调函数。以下是该函数的代码:
0222: static void
0223: cdcacm_data_rx_cb(
0224: usbd_device *usbd_dev,
0225: uint8_t ep __attribute__((unused))
0226: ) {
0227: // How much queue capacity left?
0228: unsigned rx_avail = uxQueueSpacesAvailable(usb_rxq);
0229: char buf[64]; // rx buffer
0230: int len, x;
0231:
0232: if ( rx_avail <= 0 )
0233:
超级会员免费看
订阅专栏 解锁全文
1266

被折叠的 条评论
为什么被折叠?



