kkk529699480 发表于 2012-7-18 16:59:00

求高人粗线给我点评一下SPI程序

while(1)
{   

   FLOW_Data=SPI1_Master_SendByte(0x30);deleay(20);//读取的是ADC0的低八位
   FLOW_Data=SPI1_Master_SendByte(0x31);deleay(20);//读取的是ADC0的高八位
   HZ_Data=SPI1_Master_SendByte(0x40);deleay(20);//读取的是ADC0的低八位

   Uart1_SendByte(0xfF);      
   deleay(20);
   Uart1_SendByte(FLOW_Data);   //ADC2的高八位
   deleay(20);
   Uart1_SendByte(FLOW_Data);   //ADC1的高八位
   deleay(20);                     //压力毫安部分
      

}
   

这种时候,FLOW_Data里面的数 ,本来是0X30反馈的值,但是不知道为什么,是0x40,被存到HZ_dATA【0】里了,就是说数据正好串了一位

我用的ARM7 LPC系列。。。

SPI主机我是发一个查询码,反馈一个信息

kkk529699480 发表于 2012-7-19 11:25:50

void HZ_SendData()
{
uint8 temp;
//-------------------------------------------------------------
IO0CLR |=P0_21;
//--------------------------------------------------------------
S1PDR=0x30;
while(((temp=S1PSR)&0x80)==0);        //等待数据发送完毕


while(!((i = S1PSR) & 0x80)) ;
rtmp = S1PDR;
FLOW_Data=S1PDR;

//-------------------------------------------------------------
deleay(1);
//--------------------------------------------------------------
S1PDR=0x31;
while(((temp=S1PSR)&0x80)==0);        //等待数据发送完毕


while(!((i = S1PSR) & 0x80)) ;
rtmp = S1PDR;
FLOW_Data=S1PDR;

//----------------------------------------------------------
IO0SET |=P0_21;
//---------------------------------------------------------
}


修改了一下,整合到一个程序里,但是这样数据顺序对了,第一个数据读出来了,第二个却读不出来了

kkk529699480 发表于 2012-7-19 11:28:54

{:cry:{:sad:}调试这种东西要啥技巧么

huzb11 发表于 2012-7-19 16:33:36

kkk529699480 发表于 2012-7-19 11:28 static/image/common/back.gif
{:cry:调试这种东西要啥技巧么

楼主,你硬件是如何接的?

kkk529699480 发表于 2012-7-19 17:43:36

主机是个LPC的ARM7,从机是个52核心的CPU,主机SS拉高,随便找了一个IO做CS片选控制52核心的CPU


我试验了一下,读取单个数据是准确的,那么起码这个东西就不是我硬件连线有问题。。还是我写的东西有问题

eryunk 发表于 2012-7-19 17:58:08

kkk529699480 发表于 2012-7-19 17:43 static/image/common/back.gif
主机是个LPC的ARM7,从机是个52核心的CPU,主机SS拉高,随便找了一个IO做CS片选控制52核心的CPU




52核?!!
这是什么东西

kkk529699480 发表于 2012-7-19 18:34:34

8052.

感谢您的回复。
页: [1]
查看完整版本: 求高人粗线给我点评一下SPI程序