2846|4

180

帖子

3

TA的资源

一粒金砂(中级)

楼主
 

求nrf24l01通信程序,msp430 的,自己写的在测试的时候一直发送失败 [复制链接]

不晓得怎么回事,一直发送失败,有没有nrf24l01的例子给我参考一下,或者大神帮我看看问题在哪

  1. u8 NRF_WriteReg(u8 reg,u8 val)
  2. {
  3.   u8 temp;
  4.   NRF24L01_CSN_0;
  5.   temp=SPI3_SendReceiveByte(reg);
  6.   SPI3_SendReceiveByte(val);
  7.   NRF24L01_CSN_1;
  8.   return temp;
  9. }




  10. u8 NRF_ReadReg(u8 reg)
  11. {
  12.   u8 val;
  13.   NRF24L01_CSN_0;
  14.   SPI3_SendReceiveByte(reg);
  15.   val=SPI3_SendReceiveByte(0xff);
  16.   NRF24L01_CSN_1;
  17.   return val;
  18. }


  19. u8 NRF_ReadBuf(u8 reg,u8 *buff,u8 num)
  20. {
  21.   u8 i,val;
  22.   NRF24L01_CSN_0;
  23.   val=SPI3_SendReceiveByte(reg);
  24.   for(i=0;i<num;i++)
  25.     *buff++=SPI3_SendReceiveByte(0xff);
  26.   NRF24L01_CSN_1;
  27.   return val;
  28. }


  29. u8 NRF_WriteBuf(u8 reg,u8 *buff,u8 num)
  30. {
  31.   u8 val,i;
  32.   NRF24L01_CSN_0;
  33.   val=SPI3_SendReceiveByte(reg);
  34.   for(i=0;i<num;i++)
  35.     SPI3_SendReceiveByte(*buff++);
  36.   NRF24L01_CSN_1;
  37.   return val;
  38. }

  39. u8 NRF_SendPacket(u8 *TxBuf)
  40. {
  41.   u8 val;
  42.   NRF24L01_CE_0;
  43.   NRF_WriteBuf(WR_TX_PLOAD,TxBuf,TX_PLOAD_WIDTH);
  44.   NRF24L01_CE_1;
  45.   delay_ms(5);
  46.   while(NRF24L01_IRQ!=0);
  47.   val=NRF_ReadReg(STATUS);
  48.   NRF_WriteReg(WRITE_REG,val);
  49.   if(val&MAX_TX)
  50.   {
  51.     NRF_WriteReg(FLUSH_TX,0xff);
  52.     return MAX_TX;
  53.   }
  54.   if(val&TX_OK)
  55.     return TX_OK;
  56.   return 0xff;  
  57. }
复制代码


 
点赞 关注

回复
举报

180

帖子

3

TA的资源

一粒金砂(中级)

沙发
 
这个是SPI3初始化的代码
  1. void SPI3_Init()
  2. {
  3.   P10SEL|=BIT1+BIT2+BIT3;    //设置P10.1~P10.3外设功能
  4.   P10SEL&=~(BIT0+BIT4+BIT5);
  5.   P10DIR|=BIT0+BIT1+BIT3+BIT4;     //设置CS,MOSI,CLK,CE,为输出方向
  6.   P10DIR&=~(BIT2+BIT5);             //设置MISO为输入方向
  7.   P10DS|=BIT0+BIT1+BIT3+BIT4;     
  8.   P10REN|=BIT2+BIT5;              //设置MISO上拉
  9.   P10OUT|=BIT1+BIT2+BIT5;
  10.   P10OUT&=~BIT0+BIT3;
  11.   UCB3CTL1|=UCSWRST;      
  12.   UCB3CTL0 =UCCKPH+UCMSB+UCMST+UCMODE_0+UCSYNC;    //3线SPI主机模式,时钟极性高,先发送MSB
  13.   UCB3CTL1|=UCSSEL_2;          ///选择SMCLK
  14.   UCB3BR0=5;                  //25M/5=5M <10M
  15.   UCB3BR1=0;
  16.   UCB3CTL1&=~UCSWRST;
  17.   UCB3IE &= ~(UCRXIE+UCTXIE);  //不开中断
  18.   UCB3IFG&=~UCRXIFG;
  19. }

  20. //连接方式
  21.     //P10.0->CSN    P10.1->MOSI
  22.     //P10.2->MISO   P10.3->CLK
  23.     //P10.4->CE     P10.5->IRQ




  24. u8 SPI3_SendReceiveByte(u8 byte)
  25. {
  26.   u8 val;
  27.   while (!(UCB3IFG&UCTXIFG));   //等待TXBUF为空
  28.   UCB3TXBUF=byte;
  29.   while((UCB3STAT&UCBUSY)&&(!(UCB3IFG&UCRXIFG)));    //等待发送跟接收完成
  30. //  while (!(UCB3IFG&UCRXIFG));   //等待接收完
  31.   val=UCB3RXBUF;
  32.   return val;
  33. }
复制代码
 
 

回复

180

帖子

3

TA的资源

一粒金砂(中级)

板凳
 
哪位大神给一个nrf24l01的例子啊,要msp430的
 
 
 

回复

180

帖子

3

TA的资源

一粒金砂(中级)

4
 
硬件SPI或者软件模拟SPI的都行啊
 
 
 

回复

180

帖子

3

TA的资源

一粒金砂(中级)

5
 
硬件SPI或者软件模拟SPI的都行啊
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表