牛卧堂MCU技术交流
标题: 请教关于BSP资源里的VCOM例程 [打印本页]
作者: u9854610 时间: 2014-6-11 16:11
标题: 请教关于BSP资源里的VCOM例程
在NUC123SeriesBSP_CMSIS_V1.01.006\SampleCode\USB\Smpl_VCOM範例主程式中,我想透過PC串口來收發資料,程式會卡在 VCOM_MainProcess();
int main (void)
{
SYS_Init();
VCOM_MainProcess(); //en: Execute VCOM process
}
如果要在主程式中加一段程式UART_WRITE(UART0, 0x31);來傳送資料該如何設定?
int main (void)
{
SYS_Init();
VCOM_MainProcess(); //en: Execute VCOM process
UART_WRITE(UART0, 0x31);
}
作者: a_ziliu 时间: 2014-6-13 10:24
請把串口開啟。
附件完整样例
Project path:\Nano100BSeriesBSP_CMSIS_V1.00.005 - UART\Samples\Driver\UART\KEIL
void UART0_Init(void)
Nano100BSeriesBSP_CMSIS_V1.00.005 - UART.zip
(459.38 KB, 下载次数: 2060)
作者: u9854610 时间: 2014-6-13 12:10
要透過USB的VCOM來傳送資料喔!不是單純的UART
作者: a_ziliu 时间: 2014-6-17 10:08
在這一段處理
USBD_MemCopy((uint8_t *)(USBD_BUF_BASE + USBD_GET_EP_BUF_ADDR(EP2)), (uint8_t *)gRxBuf, i32Len);
USBD_SET_PAYLOAD_LEN(EP2, i32Len);
/* Check if any data to send to USB & USB is ready to send them out */
if(comRbytes && (gu32TxSize == 0)) {
i32Len = comRbytes;
if(i32Len > EP2_MAX_PKT_SIZE)
i32Len = EP2_MAX_PKT_SIZE;
for(i=0; i<i32Len; i++) {
gRxBuf[i] = comRbuf[comRhead++];
if(comRhead >= RXBUFSIZE)
comRhead = 0;
}
NVIC_DisableIRQ(UART0_IRQn);
comRbytes -= i32Len;
NVIC_EnableIRQ(UART0_IRQn);
gu32TxSize = i32Len;
USBD_MemCopy((uint8_t *)(USBD_BUF_BASE + USBD_GET_EP_BUF_ADDR(EP2)), (uint8_t *)gRxBuf, i32Len);
USBD_SET_PAYLOAD_LEN(EP2, i32Len);
}
作者: f57730 时间: 2015-8-17 18:30
請問USBD_MemCopy((uint8_t *)(USBD_BUF_BASE + USBD_GET_EP_BUF_ADDR(EP2)), (uint8_t *)gRxBuf, i32Len);
USBD_SET_PAYLOAD_LEN(EP2, i32Len);
程式碼中要如何修改才能有利用VCOM傳輸資料的功能呢?因為我在上面這一段程式碼跟我未修改前的是一模一樣的
作者: wright 时间: 2015-8-19 09:45
本來就會 一直在處理 VCOM_MainProcess() ,裡面是處理 USB 資料的進出 .
作者: Angus 时间: 2015-8-19 10:45
您可以试试本论坛中的这个代码 ,
http://www.nuvoton-m0.com/forum. ... &extra=page%3D1
代码烧录到NUC123 后会一直向PC机串口助手发送数据,也可以在串口助手窗口向NUC123发送数据
欢迎光临 牛卧堂MCU技术交流 (http://nuvoton-mcu.com/) |
Powered by Discuz! X3.2 |