回复帖子:(yy)我又看了下,如果悬空测的话,返回false是...

用户名:   *您没有注册?
密码:   *忘记论坛密码?    标题采用“回复:XXX....”
验证码 点击获取验证码
主题标题:  *不得超过 200 个汉字
当前心情
上一页 发帖表情 下一页
内容
  

主题最新回顾(发布时间:2013-12-2 9:45:00)
--  作者:zxw(171.212.*.*)
--  
是可以的,但在应用或驱动上会进行一些调整才可以。
你能确认你的应用中需要用到18位的ADC?图片点击可在新窗口打开查看

主题最新回顾(发布时间:2013-12-1 0:44:00)
--  作者:客人(182.128.*.*)
--  
请教,我要实现主控板与一个外接18位的AD芯片max1403的SPI通信,好实现吗?

主题最新回顾(发布时间:2013-11-22 10:33:00)
--  作者:jagict
--  
好的,多谢。

主题最新回顾(发布时间:2013-11-21 17:51:00)
--  作者:yy
--  
抱歉,我们发现这个问题了。我们改下这个问题,改好了测试了我邮件联系你。
现在你可以先不管这个返回值。

主题最新回顾(发布时间:2013-11-21 10:39:00)
--  作者:jagict
--  
我已经收到数值了,RxBuffer[0]和RxBuffer[1]都有可变的数值,说明通信成功也不是悬空的,还是返回false呢。

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

主题最新回顾(发布时间:2013-11-6 14:29:00)
--  作者:jagict
--  
不是负1,是个数值15025411,读取应该算成功了怎么还返回false呢?你给的程序也是。

主题最新回顾(发布时间:2013-11-6 11:29:00)
--  作者:yy
--  
readfile返回false最大可能是你的hSPI句柄不对,你看下句柄是不是-1?
如果句柄是-1,可能你同时跑了2个程序,SPI已经打开过了,重复打开失败,你试下把之前那个先关了。

主题最新回顾(发布时间:2013-11-5 9:16:00)
--  作者:jagict
--  
太感谢了,问题有了重大进展,我也能看到波形了。不过writefile函数变成返回false,出现fail提醒,这是?

另外我循环readfile时又没看到波形了,请教readfile时的配置是一样的吗?需要怎么写才算成功读到数据?

谢谢你们耐心的指导哈。

现在能看到readfile波形了,还是有fail提示,我的读取配置如下:
            sSPI.BitCount = 16;
            sSPI.pDatBuf = pRxBuffer;
            sSPI.dwDatLen = 1;
            sSPI.bLockCS = 0;
            bRes = SPI.ReadFile(hSPI, ref sSPI, sizeSPI, ref uLen, 0);     
收到的数据都是8位的ff,算是正确收到数据了吗?


现在我设置sSPI.bLockCS = 1,可以读取到一个数值了,我想应该算成功读取了。现在的疑问只剩下writefile与readfile现在的返回值都为false,这是?
[此贴子已经被作者于2013-11-5 14:46:17编辑过]

主题最新回顾(发布时间:2013-11-4 17:55:00)
--  作者:yy
--  
抱歉开始说错了,我上面修改了,我测试了下程序.
修改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编辑过]