请问下WINCE IST数据如何给应用程序共享啊?
之前我是通过deviceiocontrol , 这是可以的。
但是现在我的SPI驱动通过中断的方式读取数据,应用程序想要得到这块数据,怎么给啊?
例子下:
g_Data 是个全局变量。
DWORD SPI_IST(void *pDataForIST)
{
DATAFORIST *pLocal_data=(DATAFORIST*)pDataForIST;
while(1)
{
WaitForSingleObject(pLocal_data->driverInfo.hIntrEvent,INFINITE);
//interrupt handler
。。。。。。。。
// Read data from MISO
g_Data.readWriteInfo.bufIn[dbNUMIN]= 0xFF ;
。。。。。。。。
}
。。。。。。。。
}
我的应用程序如何访问这个bufIn[]呢? 谢谢了
通过消息,事件都可以阿!
比如:你在IST里缓存数据,然后消息通知UI去读取,UI使用DeviceIOControl获取数据
但是得注意数据同步问题,即如果IST使用SendMessage方式,则有可能会使驱动性能降低,如果使用PostMessage,则有可能会丢失数据(使用额外的方法可以降低几率)
事件也是类似情况!