pdh716 发表于 2009-10-19 21:12

51单片机 + CC2420 模块 SPI读写的问题

如题,根据资料进行SNOP空操作的时候,SPI方式存取。
需要读取状态字字节。
用示波器能看到SO口有波形输出,但用程序读不下来。
根据时序图是按位边写边读,有编过这方面的大侠没有?

yyuan918 发表于 2009-10-19 22:39

现在没能看出什么问题出来

你可以试试TI给的51的库,直接用试试

我上一谁呢 发表于 2009-10-20 08:54

有库么?到TI官网下载还是怎么的?

wangxzok 发表于 2009-10-20 10:59

TI管网上有

high47 发表于 2009-10-20 11:23

1。硬件SPI的时候,注意设置相关专用寄存器的状态值
2。注意速率不可过快。
3。及时处理相关数据。
4.代码中如果有死循环,请注意改成有限循环。增加代码稳定性

luobinsky 发表于 2009-10-20 12:24

函数是这样的,在往SI写一个字节数据的同时要从SO口读一个字节,从高位开始写,从高位开始读写操作


unsigned char SpiWrite(unsigned char data_buf)
{
   unsigned char i,j;
   unsigned intk;
   unsigned char temp_buf=0;;
   
   CSN =0;   //片选有效
   k =0;      
   
   j=0x80;

   while(j>0)
   {
   i= data_buf&j;       
   temp_buf=temp_buf<<1;                                       
   SCK = 0;                                          //写数据上升沿有效              
   delay(5);        //20Us           
       
                                                 
   if(i==0){
       SI =0;                         //写数据
      }
   else{
       SI =1;                     
      }                                                                        
       SCK = 1;                                                                  
       k=SO;               //读数据
       delay(5);
       temp_buf= temp_buf|k;
      j=j>>1;                       
   }                  
   CSN =1;
   return temp_buf;            //返回状态值   
}

ponylab 发表于 2009-10-22 17:35

结个贴,问题原因找到了,居然是管脚定义反了,好失败啊!
感谢回帖的哈~~

zxcvbnm751120 发表于 2024-10-5 16:46

页: [1]
查看完整版本: 51单片机 + CC2420 模块 SPI读写的问题