关于NRF一次发送多个数组!!

2019-07-20 08:23发布

近日要用nrf发送64个动态的浮点型温度值,把浮点型转换成字符型发过去的话,一共有8个数组要发,
现在主要的问题是,传输距离近的话到没有问题,远一点的话,数据会不一样,这应该是我代码的问
题,不知道要怎么写,才能一次性发这8个数组。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
12条回答
szczyb1314
2019-07-21 05:12
本帖最后由 szczyb1314 于 2018-5-3 13:29 编辑

研究下24L01数据手册,24L01是不是可以发送多于32byte的数据,如果可以,改下24L01的配置即可,如果不行,
   while(1)
    {
        //将温度值存放到共用体
        for(n=0;n<64;n++)
        {
            temp[n].f = pixels[m];  //将64个温度值存放到共用体数组
            m++;
            if(m==64)m=0;
        }

        //数据转换64个float全部转入tmp_1buf[256]
        for(j=0;j<255;j=j+4)
        {
            tmp_1buf[j]   =  temp[k].i[0];
            tmp_1buf[j+1]  =     temp[k].i[1];
            tmp_1buf[j+2]  =     temp[k].i[2];
            tmp_1buf[j+3]  =     temp[k].i[3];
            k++;
            if(k==64)k=0;
        }
         
        //发数据
        k=0;
        while(k<255)
        {
            if(NRF24L01_TxPacket(&tmp_1buf[k])==TX_OK) //发送成功则发送下一帧
                k = k + 32;   
            else  //发送失败需要重发
                k = k;
        }
        if(k==256)
        {
            GPIO_WriteOutBits(HT_GPIOC,GPIO_PIN_9,RESET);   //全部发送完成熄灭LED1   
        }
          k = 0;  
            
            delay_ms(100);
    }
随便写了写,大概就是这么个意思了,你自己好好组织下,注意逻辑

一周热门 更多>