尝试从USB端口读取数据时,ReadFile()给出错误998

时间:2018-05-21 14:24:14

标签: c serial-port usb readfile stm32

我正在尝试使用我自己的应用程序通过USB将数据从STM32 Discovery Board发送到主机PC。我设法将数据发送到STM。我使用了WriteFile。为了读取数据,我调用函数readSerialPort()来调用函数ReadFile()

在main.c中调用readSerialPort()。每当我向PC发送一些testdata(4个随机字节)时,我可以看到status.cbInQue变大4,但ReadFile不返回TRUE,表明它已经完成将数据放入缓冲区指针导致{{ 1}}。

当我执行receivedData()时,它返回错误代码998.这意味着 ERROR_NOACCESS ,通常这意味着分配的数组与GetLastErrror()不同,但它是。那么是什么导致了这个错误,并且无法通过USB从STM接收数据呢?

(我很想在Stackoverflow上提问,所以请告诉我是否需要改进我提出这个问题的方式)

的main.c

buf_size

comm.c

char* receivedData[31];     
uint32_t id = 0;        
while(1) {  
if (readSerialPort(*receivedData, 31)) {
    printf("%d - %s\n", id, receivedData);
    id++;       
} else {            
    printf("error %u\n", GetLastError());       
}

1 个答案:

答案 0 :(得分:0)

Johnny的第一条评论解决了我的问题:

  

char* receivedData[31];是一个未初始化的指针数组。你是否   是char receivedData[31];?然后打电话:   if (readSerialPort(receivedData, 31)) {