3624|8

6

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

飞思卡尔单片机与rf905的通信spi通信问题 [复制链接]

我是一个新人,对飞思卡尔单片机使用的不是很熟,最近在使用飞思卡尔128单片机和nrf905之间做一个无线传输的小协议,选择飞思卡尔为主机模式,并且作为接收终端,用于接收我的发送数据。我的发送端是用51做到已经好使了,没有问题了(发送端暂且不用考虑是好使的)。那我的问题来了,就是接收端接收不到数据,仿真时,spi只是一打开就迅速中断停止了。查看状态寄存器的SPIF位根本没有改变一直是零停在那里。所以我判断这就是症结所在,导致了MCU读取nrf905的接收数据失败了。

查找了好久,资料阅读了好多也没有发现问题的解决方案。听说这里的高手如云,热心的人如云。我相信,我有信心相信我的问题能很快得到高手的指点的。解决我的问题。

{
  //(void)SPI0SR;
 SPI0DRL = byte;
 Delay(2);
 while(!(SPI0SR_SPTEF));//wait until the data is all sent off
 
 }

/*****************************************************************************/
//function SpiRead();
/*****************************************************************************/
uchar SpiRead(void)
{
 
 while(!(SPI0SR_SPIF));  //程序就是卡在这里了,如果屏蔽掉改行代码,spi的数据时运行的状态
 Delay(2);
 return SPI0DRL;  // Return function parameter
}

接收905数据包的函数

void RxPacket(void)
{
 uchar i; 
 TRX_CE=0;     // Set nRF905 in standby mode 
 CSN=0;      // Spi enable for write a spi command
 SpiWrite(RRP);                  
 for (i=0;i<4;i++)      // Read payload comma
 {
  RxBuf=SpiRead();  // Read data and save to buffer
 }
 CSN=1;      // Disable spi
 while(DR||AM); 
   
    Delay(2);
    TRX_CE=1;
 
  
}

 

 

真心求解  希望得到各位的帮助 多谢!

 

 

 

此帖出自无线连接论坛

最新回复

楼主要是成功了求指教…扣扣:252076178  详情 回复 发表于 2012-6-13 01:24
点赞 关注
 

回复
举报

6

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

回复 楼主 djxzmg 的帖子

我没有说清楚吧看来 补充:单片机工作的晶振是16Mhz的,905采用从机工作方式,采用三线制spi连接方式。因为只有一个905从机。
现在问题的主要原因是读取数据没有成功,while(!(SPI0SR_SPIF));这个代码总是运行不过去,原因是spif状态位没有改变,这个我在单步调试的时候已经验证过了。
我想知道我的接收端怎样才能使spif位正常,想请用过的好心人解答一下。
此帖出自无线连接论坛
 
 

回复

6

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

大虾们呀 你们在哪里呀 “青青子衿,悠悠我心”我的这个问题就这么的沉了吗。有没有做过的,来解答或是指导亦或是交流一下都很好的呀。 看看这是怎么回事 程序总是调试的不好。 

此帖出自无线连接论坛
 
 
 

回复

222

帖子

0

TA的资源

一粒金砂(高级)

4
 
我用飞思卡尔发送.也还没成...纠结中
此帖出自无线连接论坛
 
 
 

回复

6

帖子

0

TA的资源

一粒金砂(中级)

5
 

这个可以呀, void SpiWrite(uchar  byte)
{
  //(void)SPI0SR;
 SPI0DRL = byte;
 Delay(2);
 while(!(SPI0SR_SPTEF));//wait until the data is all sent off
 
 }

这个发送的程序我是在12日早上调试好的,要加上个延时905才能够处理好,跟波特率没有关系,只要不超过100K就可以了,我想照着这样做就没有问题了,还有问题再联系。

此帖出自无线连接论坛
 
 
 

回复

473

帖子

0

TA的资源

纯净的硅(中级)

6
 
看看SPI的模式配置,有4种,这个模式别错了,错了肯定是不行
此帖出自无线连接论坛
个人签名Nicrosystem专业提供freescale、TI和STM32高性价比开发板、解决方案
http://nicrosystem.taobao.com
 
 
 

回复

6

帖子

0

TA的资源

一粒金砂(中级)

7
 

这个SPI的模式肯定是没有错的了,因为发送的时候spi是好用的而且已经成功了,所以呀,接收程序应该是read函数有问题的了,但是原因到现在还是没有发现,逼得我们开始尝试用模拟的试试,但是我还没有放弃对SPI接收方式的调试过程,我还要坚持一下看看。希望各位大虾支持一哈

 

此帖出自无线连接论坛
 
 
 

回复

44

帖子

0

TA的资源

一粒金砂(中级)

8
 
我也是一样的问题…纠结了一个多月了…就是接收端接受不到…甚至连载波都检测不到…
此帖出自无线连接论坛
 
 
 

回复

44

帖子

0

TA的资源

一粒金砂(中级)

9
 
楼主要是成功了求指教…扣扣:252076178
此帖出自无线连接论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表