我有一个关于带有回调的 USB 读取的非常简单的问题。
我想设置对缓冲区的读取,然后等到传输完成后再使用缓冲区中的数据。设置了芯片的框架,以便您通过调用 USBD_Read 启动 USB 传输,如果传输正确启动,它将返回成功。然后在传输完成时调用回调。这就是我目前的做法:
volatile unsigned char readArrayLock = 0;
//USB读取回调
void readNextDataArrayCallback(void *pArg, unsigned char status, unsigned int transfered, unsigned int remaining){
readArrayLock = 0;
}
//读取usb数据
readArrayLock = ! USBD_Read(0x2, g_pucDataArray, g_iDataPacketSize, (TransferCallback)readNextDataArrayCallback, 0);
// 等待
while (readArrayLocked);
//然后使用数据
我遇到的问题是在 while 循环中似乎从未调用过中断。如果我注释掉 while 循环,则调用中断。基本上我的问题是如何使用回调中断 while 循环?
我怎样才能解决这个问题?还是有更好的方法来实现相同的目标?
谢谢