主题:EM9280-SPI通信问题

  共有87209人关注过本帖    
帅哥哟,离线,有人找我吗?
yy
1楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2013-11-4 9:08:00   [显示全部帖子]

例程里是8bit的,你可能需要改成16bit的。
定义
private const int SSP_WORD_LENGTH_16BITS = 0xF;
然后后面
spiinit.eLength = SSP_WORD_LENGTH_16BITS;

而sSPI.BitCount是你要发送数据的长度,你确定是16吗?还有波形有办法发我邮箱下吗?我邮箱yy@emtronix.com

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
yy
2楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2013-11-4 11:06:00   [显示全部帖子]

数据就是你要发送的数据的个数,如果填5,8bit就是5字节,16bit就是10字节。最后是有个波形给我们参考下。
[此贴子已经被作者于2013-11-4 11:51:59编辑过]

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
yy
3楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2013-11-4 11:54:00   [显示全部帖子]

修改下,前面说错了,非常抱歉。BitCount的值为8或者16,分别表示8bits还是16bits。
有2个地方要修改
一个是SPIConfigure函数里的spiinit.eLength = SSP_WORD_LENGTH_16BITS;
一个是ReadFile或WriteFile时的SPI_INFO结构体sSPI.BitCount = 16;

[此贴子已经被作者于2013-11-4 18:08:59编辑过]

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
yy
4楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2013-11-4 17:55:00   [显示全部帖子]

抱歉开始说错了,我上面修改了,我测试了下程序.
修改SPI.cs
spiinit.eLength = SSP_WORD_LENGTH_16BITS;
修改Program.cs
            TxBuffer[0] = 0xfc;
            TxBuffer[1] = 0xf3;
            TxBuffer[2] = 0x00;
            TxBuffer[3] = 0x00;
            TxBuffer[4] = 0x00;
            TxBuffer[5] = 0x00;
            TxBuffer[6] = 0x00;
            TxBuffer[7] = 0x00;
            TxBuffer[8] = 0x00;
            TxBuffer[9] = 0x00;

            sSPI.BitCount = 16;
            sSPI.pDatBuf = pTxBuffer;
            sSPI.dwDatLen = 1;
            sSPI.bLockCS = 0;

            Marshal.Copy(TxBuffer, 0, pTxBuffer, 10);

            bRes = SPI.WriteFile(hSPI, ref sSPI, sizeSPI, ref uLen, 0);
我看到的波形SPI_SCLK即CN9的3号脚输出了16个脉冲。SPI_MOSI即CN9的4号脚是 11110011 11111100 正好是f3 fc说明是对了的。
程序发你邮箱了,波形图不是太清楚 但是你应该能看出来。
[此贴子已经被作者于2013-11-4 18:39:21编辑过]

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
yy
5楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2013-11-6 11:29:00   [显示全部帖子]

readfile返回false最大可能是你的hSPI句柄不对,你看下句柄是不是-1?
如果句柄是-1,可能你同时跑了2个程序,SPI已经打开过了,重复打开失败,你试下把之前那个先关了。

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
yy
6楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2013-11-7 9:36:00   [显示全部帖子]

我又看了下,如果悬空测的话,返回false是正常的,驱动是判断spi通信是否成功,来返回true或false的。
[此贴子已经被作者于2013-11-7 9:36:00编辑过]

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
yy
7楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2013-11-21 17:51:00   [显示全部帖子]

抱歉,我们发现这个问题了。我们改下这个问题,改好了测试了我邮件联系你。
现在你可以先不管这个返回值。

  单帖管理 | 引用 | 回复 回到顶部

返回首页

EM9280-SPI通信问题

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: