当前位置: 代码迷 >> WinCE >> wince6.0 6410 SPI Writefile()函数唯其如此正确传送第一个BYTE
  详细解决方案

wince6.0 6410 SPI Writefile()函数唯其如此正确传送第一个BYTE

热度:538   发布时间:2016-04-28 11:58:06.0
wince6.0 6410 SPI Writefile()函数只能正确传送第一个BYTE
如题,驱动和BSP皆由友善官网提供,应用程序CreateFile()成功,DeviceIoControl()成功,使用DMA模式SPI传输数据,想用WriteFile()连续传送8个字节,用示波器抓包发现只有第一个byte是正确的,后面的7个都是误码,请问是什么原因?

关键代码如下:

h_spi = CreateFile(TEXT("SPI1:"), GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);

DWORD dwWritenSize = 0;
DWORD dwWritenData[8] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08};

SET_CONFIG  Set_SPI_Config;

Set_SPI_Config.dwMode = SPI_MASTER_MODE;
...
Set_SPI_Config.bUseTxDMA = TRUE;

DeviceIoControl(h_spi, SPI_IOCTL_SET_CONFIG, &Set_SPI_Config, sizeof(Set_SPI_Config), NULL, 0, NULL, NULL);
DeviceIoControl(h_spi, SPI_IOCTL_START, NULL, 0, NULL, 0, NULL, NULL);

WriteFile(h_spi, dwWritenData, 8, &dwWritenSize, NULL);
------解决思路----------------------
看一下 WriteFile 的返回值是多少吧
  相关解决方案