[求助] 请教如此操作来接收SSP的数据是否正确?

milan111   2013-2-20 19:57 楼主
我现在是利用LPC1114的SSP口和一个AD来通信,此AD有四个通道,但是目前我发送“VOLTAGE”通道以进行此通道的转换,但是每次回来存放到b[]里的数据总是第一通道的数据(VOLTAGE是第三通道),不知道采用我写的程序的方式能不能正常读SSP的数据呢?请指教
ps:此AD上电后第一次转换总是转换第一通道,每次发送的转换通道号其实是下一次要转换的通道,此次得到的数据是上一次设置的通道的数据。按我的程序b[]里的数据应为{第一通道,第三通道,第三通道},但目前都是第一通道。AD是ADC124S051,TI的

    pb.txt (2013-2-20 19:57 上传)

    484 Bytes, 下载次数: 6

    代码

    adc124s051.pdf (2013-2-20 19:57 上传)

    463.16 KB, 下载次数: 3

    AD

回复评论 (5)

回复 楼主 milan111 的帖子

SSP是无法知道读写数据是否正确,一般可以采用逻辑分析仪来测试。至于AD转换,看是否有办法逐个通道转换实验,看看是否可以单独控制每一通道。再查找问题所在。
我的博客
点赞  2013-2-21 10:18

回复 沙发 zhaojun_xf 的帖子

我发现对DR进行操作,或者说读操作(这点还没确定)后就会把DR全清0,比如进行 LPC_SSP0->DR > 100 的操作后,DR就变全0了,导致判断句后对DR的操作出问题。再比如执行a=LPC_SSP0->DR,b=LPC_SSP0->DR后,a有值,b为0
请问是这样么?
点赞  2013-2-23 11:05

回复 板凳 milan111 的帖子

你的问题我没看太懂,不过读寄存器确实会清空寄存器,而且如果想SSP写完数据后,不管是否要获取SSP总线的数据都必须读取数据。
我的博客
点赞  2013-2-23 15:04

回复 4楼 zhaojun_xf 的帖子

1.读DR会清空它,是这意思么?那LPC_SSP0->DR >100这句代码算读DR么?
2.为什么写完DR后,不管要不要数据都要读DR呢?不读有什么问题呢?
点赞  2013-2-24 14:32

回复 5楼 milan111 的帖子

是要清空,会出现什么情况,你可以自己试试。。。。。。。。
我的博客
点赞  2013-2-26 17:08
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复