case CDC_SET_LINE_CODING:USBD_CDC_LineCoding.bitrate = (pbuf[3] << 24) | (pbuf[2] << ...
在ST给出的CDC例程中,主要是使用到了SetLineCoding指令来设置和修改虚拟串口的波特率,使用GetLineCoding来获取当前波特率,使用SetControlLineState来打开或关闭串口,这种操作是在Host端CDC驱动来具体映射实现的 前言:在PSTN中,除了ACM模式,还有TCM,DLM模式。这三种模式,不同的模式下包含的控制指令集是不尽相同的,有部分...
USB的CDC类是USB通信设备类 (Communication Device Class)的简称。CDC类是USB组织定义的一类专门给各种通信设备使用的USB子类。该设备类采用批量传输。 本例程中实现了CDC设备类的相关请求,包括SET_LINE_CODING、GET_LINE_CODING、SET_CONTROL_LINE_STATE等。后续将会在代码解析章节进行介绍。
case CDC_SET_LINE_CODING: break; // 主机设置串口参数 } } // 接收回调函数 // Buf & Len: 当前收到这一包数据指针与长度 static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len) {USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]); // 重新设置接收缓存 // 注意默认情况下上面一行代...
USB的CDC类是USB通信设备类 (Communication Device Class)的简称。CDC类是USB组织定义的一类专门给各种通信设备使用的USB子类。该设备类采用批量传输。 本例程中实现了CDC设备类的相关请求,包括SET_LINE_CODING、GET_LINE_CODING、SET_CONTROL_LINE_STATE等。后续将会在代码解析章节进行介绍。 有关CDC协议可以通过以下US...
USBD_CDC_LineCodingTypeDef linecoding = { USB_VIRTUAL_COM_BAUDRATE, /* baud rate*/ 0x00, /* stop bits-1*/ 0x00, /* parity - none*/ 0x08 /* nb. of bits 8*/ }; 然后修改CDC_Control_FS函数: { /* USER CODE BEGIN 5 */ ...
USBD_CDC_LineCodingTypeDef linecoding = { USB_VIRTUAL_COM_BAUDRATE, /* baud rate*/ 0x00, /* stop bits-1*/ 0x00, /* parity - none*/ 0x08 /* nb. of bits 8*/ }; 然后修改CDC_Control_FS函数: { /* USER CODE BEGIN 5 */ ...
USBD_CDC_LineCodingTypeDef USBD_CDC_LineCoding = { 115200, // 默认波特率 0X00, // 1位停止位 0X00, // 无奇偶校 0X08, // 无流控,8bit数据位 }; 下方对波特率等参数的配置代码需在下方函数中添加。 static int8_t CDC_Control_FS(uint8_t cmd, uint8_t* pbuf, uint16_t length) ...
本例程中实现了CDC设备类的相关请求,包括SET_LINE_CODING、GET_LINE_CODING、SET_CONTROL_LINE_STATE等...
设置串口波特率、起始位、停止位、流控等信息 GET_LINE_CODING(0x21) 获取串口波特率、起始位、停止位、流控等信息 SET_CONTROL_LINE_STATE(0x22)用于设置串口的状态厂商请求一般不会用于标准设备,CDC 类就没有用到(如果需要的话,应该也是能发出的)。