linecoding.datatype = pbuf[6]; /* Add your code here */ break; case CDC_GET_LINE_CODING: pbuf[0] = (uint8_t)(linecoding.bitrate); pbuf[1] = (uint8_t)(linecoding.bitrate >> 8); pbuf[2] = (uint8_t)(linecoding.bitrate >> 16); pbuf[3] = (uint8_t)(linecoding.bitrate ...
linecoding.datatype = pbuf[6]; /* Add your code here */ break; case CDC_GET_LINE_CODING: pbuf[0] = (uint8_t)(linecoding.bitrate); pbuf[1] = (uint8_t)(linecoding.bitrate >> 8); pbuf[2] = (uint8_t)(linecoding.bitrate >> 16); pbuf[3] = (uint8_t)(linecoding.bitrate ...
USB的CDC类是USB通信设备类 (Communication Device Class)的简称。CDC类是USB组织定义的一类专门给各种通信设备使用的USB子类。该设备类采用批量传输。 本例程中实现了CDC设备类的相关请求,包括SET_LINE_CODING、GET_LINE_CODING、SET_CONTROL_LINE_STATE等。后续将会在代码解析章节进行介绍。
USB的CDC类是USB通信设备类 (Communication Device Class)的简称。CDC类是USB组织定义的一类专门给各种通信设备使用的USB子类。该设备类采用批量传输。 本例程中实现了CDC设备类的相关请求,包括SET_LINE_CODING、GET_LINE_CODING、SET_CONTROL_LINE_STATE等。后续将会在代码解析章节进行介绍。 有关CDC协议可以通过以下US...
设置串口波特率、起始位、停止位、流控等信息 GET_LINE_CODING(0x21) 获取串口波特率、起始位、停止位、流控等信息 SET_CONTROL_LINE_STATE(0x22)用于设置串口的状态厂商请求一般不会用于标准设备,CDC 类就没有用到(如果需要的话,应该也是能发出的)。
在之前的文章中已经介绍了USB驱动开发所需要的前置知识,最近在写CDC ACM的驱动,也想趁热打铁来总结以下,所谓CDC ACM驱动就是把一个USB设备枚举成串口,前面的文章提到了USB2.0已经定义了很多设备类,CDC (Communications Device Class)类是USB协议规定的设备类中的一种。
GET_LINECODING 代码如下: CDC类数据处理 CDC枚举设置完成之后,USB主机可以请求设备数据,通过调用uhost_process_handler来处理。 通过set_linecoding和get_linecoding配置linecoding 通过cdc_process_reception(puhost)函数给设备发送IN请求 通过cdc_process_transmission(puhost)函数发送数据给设备 ...
(CDC_SET_LINE_CODING:你在用串口助手选择波特率时候,STM32就会调用这个分支进行修改USB波特率) (CDC_GET_LINE_CODING:获取STM32的USB波特率) case CDC_SET_LINE_CODING: USBD_CDC_LineCoding.bitrate = (pbuf[3] << 24) | (pbuf[2] << 16) | (pbuf[1] << 8) | pbuf[0]; ...
CDC接口只使用一个中断输入端点。0x02, //bInterfaceClass(Communication Interface Class); 该接口所使用的类。CDC类的类代码为0x020x02, //bInterfaceSubClass(Abstract Control Model); 该接口所使用的子类。要实现USB转串口必须使用Abstract Control Model(抽象控制模型)子类0x01, //bInterfaceProtocol(Common AT...
2. 数据处理(cdc_keyboard_class.c/h)·端点初始化(class_init_handler) ·端点清除(class_clear_handler) ·设备请求(class_setup_handler)cdc设备类请求:SET_LINE_CODINGGET_LINE_CODIN Keyboard hid设备类请求:SET_PROTOCOLGET_PROTOCOLSET_IDLEGET_IDLESET_REPORT代码如下: ·IN传输处理 ·OUT传输处理(接收数...