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

2019-03-25 20:25发布

我现在是利用LPC1114的SSP口和一个AD来通信,此AD有四个通道,但是目前我发送“VOLTAGE”通道以进行此通道的转换,但是每次回来存放到b[]里的数据总是第一通道的数据(VOLTAGE是第三通道),不知道采用我写的程序的方式能不能正常读SSP的数据呢?请指教
ps:此AD上电后第一次转换总是转换第一通道,每次发送的转换通道号其实是下一次要转换的通道,此次得到的数据是上一次设置的通道的数据。按我的程序b[]里的数据应为{第一通道,第三通道,第三通道},但目前都是第一通道。AD是ADC124S051,TI的 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
zhaojun_xf
1楼-- · 2019-03-25 23:43
_NXP LPC1000_ SSP是无法知道读写数据是否正确,一般可以采用逻辑分析仪来测试。至于AD转换,看是否有办法逐个通道转换实验,看看是否可以单独控制每一通道。再查找问题所在。
milan111
2楼-- · 2019-03-26 03:11
我发现对DR进行操作,或者说读操作(这点还没确定)后就会把DR全清0,比如进行 LPC_SSP0->DR > 100 的操作后,DR就变全0了,导致判断句后对DR的操作出问题。再比如执行a=LPC_SSP0->DR,b=LPC_SSP0->DR后,a有值,b为0
请问是这样么?
zhaojun_xf
3楼-- · 2019-03-26 07:04
你的问题我没看太懂,不过读寄存器确实会清空寄存器,而且如果想SSP写完数据后,不管是否要获取SSP总线的数据都必须读取数据。
milan111
4楼-- · 2019-03-26 12:17
1.读DR会清空它,是这意思么?那LPC_SSP0->DR >100这句代码算读DR么?
2.为什么写完DR后,不管要不要数据都要读DR呢?不读有什么问题呢?
zhaojun_xf
5楼-- · 2019-03-26 14:57
 精彩回答 2  元偷偷看……

一周热门 更多>