天线|RF射频
直播中

马杰

7年用户 162经验值
私信 关注
[问答]

stm32f103利用nrf24l01发送数却一直只显示空白怎么解决?


         代码是在STM32f103上利用nrf24l01模块发送数据(压力传感器的重物质量),但是串口什么都没有输出,跪求大神帮忙看下哪里有问题啊V55@6B1SFLKDSC3LI.gif" />



ti3JNZB.png" />int main(void)

{

int i=0;

long double M_Old,M_New,differ=0;



u8 char2[30]="Transmit Succeed!n";

u8 char3[30]="Transmit Fail!n";

u8 char5[30]="Data no change!n";



u8 TxBuf[8];



    delay_init();                     //延时函数初始化

NVIC_Configuration();         //中断优先处理/

uart_init(9600);                 //串口初始化为9600

//LCD_Init();                                   //初始化LCD

NRF24L01_Init();            //初始化NRF24L01

init();



M_Old=SetM_Old();//M_Old,M_New存放初值NULLMASS

M_New=M_Old;



     NRF24L01_TX_Mode();        //设置无线模块为发射

delay_ms(500);

  

while(1)

{

M_New=Count_Mass();

differ=M_New-M_Old;



FloatToStr1(M_New,TxBuf);



if(differ>3||differ<-3)  //数据波动在3g范围内不发送

       {

   M_Old=M_New;



if(NRF24L01_TxPacket(TxBuf)==TX_OK)

{

  delay_ms(500);

  for(i=0;char2!='';i++)  //如果发送成功,向串口发送"Transmit Succeed!n"

  {

     USART_SendData(USART1, char2);           

     while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);

  }



}



else

{

  delay_ms(500);

  for(i=0;char3!='';i++)//如果发送失败,//如果发送成功,向串口发送"Transmit Succeed!n"

  {

    USART_SendData(USART1, char3);           

    while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);

  }

  

}

  

        }





else    //否则,向串口发送"Data no change!n"

{

  delay_ms(500);

  for(i=0;char5!='';i++)

  {

  USART_SendData(USART1, char5);         

  while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);

  }

    }



delay_ms(500);



   }

}

回帖(2)

苏笛笛

2020-4-24 09:27:26
无泪了。。竟然加上  NRF24L01_Check()函数就成功了,然而并不造为什么。。
举报

李兆水

2020-4-24 09:39:11
看这个程序,串口是否有输出和无线是否发送成功没关呀。应该不会收无线发射影响呢。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分