主题 : wince6.0 6410 SPI   Writefile()函数只能正确传送一个BYTE 复制链接 | 浏览器收藏 | 打印
一切都是瞬息,一切都将会过去
级别: 新手上路
UID: 104031
精华: 0
发帖: 12
金钱: 60 两
威望: 12 点
贡献值: 0 点
综合积分: 24 分
注册时间: 2014-05-12
最后登录: 2014-10-13
楼主  发表于: 2014-09-07 10:14

 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);


级别: 新手上路
UID: 124728
精华: 0
发帖: 32
金钱: 165 两
威望: 33 点
贡献值: 0 点
综合积分: 64 分
注册时间: 2016-04-24
最后登录: 2016-06-01
1楼  发表于: 2016-05-24 18:37
楼主、楼主、楼主。顶一下,
装不出淑女气质