无法在KL25Z上通过USBSerial发送数据包

时间:2017-07-20 23:19:05

标签: mbed

我尝试了很多不同的驱动程序,无法通过USBSerial成功地将数据从uC发送到计算机。我正在尝试使用mbed官方的USBSerial驱动程序,但是使用KL25Z前叉和ST微型叉以及mbed OS2和OS5具有相同的结果。我能够从计算机到uC自由接收字节,但是我无法向另一个方向发送数据。

我尝试了3种不同的方法将数据发送到计算机:_putc(),writeBlock()和printf()。对于所有这三种方法,第一个字节成功发送回计算机,但随后设备卡在USBDevice.cpp中第863行的无限循环中。这是等待完成' USBDevice :: write()函数的一部分。

我觉得我没有足够的USB接口知识来正确调试这个驱动程序。

我已发布我的测试程序here

#include "mbed.h"
#include "USBSerial.h"

//Virtual serial port over USB
USBSerial serial;
DigitalOut thisLED(LED1);
char temp[1];

void receiveSerial()
{
    while (serial.readable())
    {
        temp[0] = serial._getc();
        serial._putc(temp[0]);
        //serial.writeBlock((uint8_t *) temp,1);
        //serial.printf(temp);
    }
}

int main(void) {
    serial.attach(&receiveSerial);
    while(1)
    {
      thisLED = !thisLED;
      wait(1);
    }
}

0 个答案:

没有答案