mirror of
https://github.com/XIVN1987/DAPLink.git
synced 2026-09-26 22:16:11 +00:00
simplify VCOM code
This commit is contained in:
Binary file not shown.
+576
-577
File diff suppressed because it is too large
Load Diff
@@ -212,7 +212,6 @@ static usb_sts_type class_out_handler(void *udev, uint8_t ept_num)
|
||||
|
||||
case CDC_BULK_OUT_EP:
|
||||
Vcom.out_bytes = recv_len;
|
||||
Vcom.out_ready = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -130,8 +130,8 @@ void VCOM_TransferData(void)
|
||||
pos = last_pos + CDC_BULK_IN_SZ;
|
||||
|
||||
Vcom.in_bytes = pos - last_pos;
|
||||
|
||||
Vcom.in_ready = 0;
|
||||
|
||||
Vcom.in_ready = 0;
|
||||
|
||||
memcpy((uint8_t *)Vcom.in_buff, &RXBuffer[last_pos], Vcom.in_bytes);
|
||||
usbd_ept_send(&Otg.dev, CDC_BULK_IN_EP, (uint8_t *)Vcom.in_buff, Vcom.in_bytes);
|
||||
@@ -154,15 +154,15 @@ void VCOM_TransferData(void)
|
||||
}
|
||||
|
||||
/* 从主机接收到数据,且前面的数据 DMA 已发送完 */
|
||||
if(Vcom.out_ready && (dma_data_number_get(DMA1_CHANNEL1) == 0))
|
||||
if(Vcom.out_bytes && (dma_data_number_get(DMA1_CHANNEL1) == 0))
|
||||
{
|
||||
Vcom.out_ready = 0;
|
||||
|
||||
memcpy(TXBuffer, (uint8_t *)Vcom.out_buff, Vcom.out_bytes);
|
||||
|
||||
dma_channel_enable(DMA1_CHANNEL1, FALSE);
|
||||
dma_data_number_set(DMA1_CHANNEL1, Vcom.out_bytes);
|
||||
dma_channel_enable(DMA1_CHANNEL1, TRUE);
|
||||
|
||||
Vcom.out_bytes = 0;
|
||||
|
||||
/* Ready for next BULK OUT */
|
||||
usbd_ept_recv(&Otg.dev, CDC_BULK_OUT_EP, (uint8_t *)Vcom.out_buff, CDC_BULK_OUT_SZ);
|
||||
|
||||
@@ -20,7 +20,6 @@ typedef struct {
|
||||
uint16_t in_ready;
|
||||
uint8_t out_buff[64];
|
||||
uint16_t out_bytes;
|
||||
uint16_t out_ready;
|
||||
} VCOM;
|
||||
|
||||
extern volatile VCOM Vcom;
|
||||
|
||||
Reference in New Issue
Block a user