微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2540 USB send data

CC2540 USB send data

时间:10-02 整理:3721RD 点击:

请教各位大侠一个关于CC2540 USB的问题,具体的code如下:

// Poll for data to USB.
void usbHIDSendData(void)
{
    uint8 ep = 0x00;
    uint8 max = HAL_UART_USB_TX_MAX;
   
    // Save current endpoint
    ep = USBFW_GET_SELECTED_ENDPOINT();
   
    // Select endpoint4
    USBFW_SELECT_ENDPOINT(4);
   
    // If the IN endpoint is ready to accept data.
    if (USBFW_IN_ENDPOINT_DISARMED() && (ucUSB0Send == 1))
    {
        if(isrCfg.rxHead != isrCfg.rxTail)
        {
            do
            {
                USBF4 = isrCfg.rxBuf[isrCfg.rxHead++];
            } while ((isrCfg.rxHead != isrCfg.rxTail) && (0 != --max));
           
            USBFW_ARM_IN_ENDPOINT();
        }

        // rx buffer empty
        if (isrCfg.rxHead == isrCfg.rxTail)
        {
            isrCfg.rxHead = 0x00;
            isrCfg.rxTail = 0x00;
            ucUSB0Send = 0;
        }   
    }
   
    USBFW_SELECT_ENDPOINT(ep);
}

使用endpoint4作为fifo,先讲rxBuf中数据写入endpoint4,然后USBFW_SELECT_ENDPOINT(ep);

但是用Bus Bound监听不到数据,不知道是不是Bus Bound不能被动接受数据还是USB寄存器配置的不对?

USB 发送数据还要配置那些寄存器啊?

希望ti的工程师能够提供一些帮助,也欢迎各位大侠不吝赐教。

Which code you are based on your development ?

What is the USB descriptor is using ?

Generally, data send/ receive has to be matched with the USB descriptor.

因为要实现HID功能,所以我的code是基于HIDAdvRemoteDongle,但是我对 USB descriptor做了一些修改,

输入输出均采用endpoint4,大小均为64Byte,具体见附件,麻烦您帮忙看一下,

谢谢。

您好 kong lei,

我现在也在使用CC2540 USB,我想要实现DONGLE通过USB和PC的简单数据传送,数据发送函数和您用的是一样的,使用串口调试助手监听不到数据,使用IAR调试的时候发现USBF4中并没有写入数据,我想知道您的问题解决了吗,能不能给我一些指点?十分感谢您的帮助。

YAPENG

其实重点在USB descriptor,USB device的PID和VID也很重要,我采用的我们公司自己的PID和VID,

将CC2540虚拟成了可以进行大量数据读写的设备。

你再仔细检查一下USB descriptor部分吧,

祝你好运。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top