2374672920 发表于 2024-10-28 20:52:57

【USB-CDC虚拟串口协议范例如何才能触发串口的接收中断(RI = 1)?】


USB-CDC虚拟串口协议范例里,如何才能触发串口的接收中断(RI = 1)?{:4_167:}


普通串口是数据发送至SBUF缓冲区后触发接收中断,但是虚拟串口是数据发送到USB的FIFO缓冲区,怎么发送到SBUF缓冲区呢?



我看协议范例里面的数据接收过程:
USB的FIFO缓冲区→数组RxBuffer[]→字节变量dat→串口数据缓冲区S2BUF→串口发送中断(TI = 1)
发送到哪里去了呢?{:4_167:}USB吗?

串口接收中断又如何触发的,求解答{:4_201:}

邮箱 发表于 2024-10-28 22:11:59

串口2的RX引脚接收到数据,就可以触发中断了

DebugLab 发表于 2024-10-29 01:58:50

CDC和SBUF无关,SBUF是硬件串口的


电脑通过USB CDC发送到单片机,单片机接收并转发到硬件串口,从UART2 TxD的某个引脚输出了
串口接收中断是UART2 RxD引脚收到数据后触发

DebugLab 发表于 2024-10-29 02:01:11

CDC库函数中断模式
接收到数据会调用usb_OUT_callback函数
发送数据调用USB_SendData函数

2374672920 发表于 2024-10-29 20:23:36

邮箱 发表于 2024-10-28 22:11
串口2的RX引脚接收到数据,就可以触发中断了

虚拟串口的RX引脚没有接东西怎么触发中断{:shocked:}

2374672920 发表于 2024-10-29 20:40:10

DebugLab 发表于 2024-10-29 01:58
CDC和SBUF无关,SBUF是硬件串口的




协议范例里面是CDC接收到的数据写到SBUF里了,虚拟串口RXD引脚没接东西可以触发吗{:dizzy:}

DebugLab 发表于 2024-10-29 23:14:21

2374672920 发表于 2024-10-29 20:40
协议范例里面是CDC接收到的数据写到SBUF里了,虚拟串口RXD引脚没接东西可以触发吗 ...

手动置位中断标志触发
页: [1]
查看完整版本: 【USB-CDC虚拟串口协议范例如何才能触发串口的接收中断(RI = 1)?】