找回密码
 立即注册

QQ登录

只需一步,快速开始

开启左侧

[NUC] 请教关于BSP资源里的VCOM例程

[复制链接]
u9854610 发表于 2014-6-11 16:11:42 | 显示全部楼层 |阅读模式
在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:13 | 显示全部楼层
請把串口開啟。

附件完整样例
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, 下载次数: 1902)
回复 支持 反对

使用道具 举报

 楼主| u9854610 发表于 2014-6-13 12:10:29 | 显示全部楼层
要透過USB的VCOM來傳送資料喔!不是單純的UART
回复 支持 反对

使用道具 举报

a_ziliu 发表于 2014-6-17 10:08:00 | 显示全部楼层
在這一段處理
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:55 | 显示全部楼层
請問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:57 | 显示全部楼层
本來就會 一直在處理 VCOM_MainProcess() ,裡面是處理 USB 資料的進出 .
回复 支持 反对

使用道具 举报

Angus 发表于 2015-8-19 10:45:59 | 显示全部楼层
您可以试试本论坛中的这个代码 ,
http://www.nuvoton-m0.com/forum. ... &extra=page%3D1
代码烧录到NUC123 后会一直向PC机串口助手发送数据,也可以在串口助手窗口向NUC123发送数据
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU