Portapack应用开发教程(十七)nrf24l01发射

以前用portapack实现过nrf24l01的接收,接下去想试试发射功能。

我在ymfc-mini-drone week6_future_experiment_哔哩哔哩_bilibili里面讲过gr-nordic也可以接收,但是发射流图跑不起来,电脑性能不够。所以我打算分析一下它的代码,把核心部分重新用c++来实现一遍,看看性能能否提升一下。

下面3个文件就是接收和发射的核心。

gr-nordic/enhanced_shockburst_packet.cc at master · BastilleResearch/gr-nordic · GitHub

gr-nordic/nordic_rx_impl.cc at master · BastilleResearch/gr-nordic · GitHub

gr-nordic/nordic_tx_impl.cc at master · BastilleResearch/gr-nordic · GitHub

接下来,我打算自己用c++写编码程序,发给之前已经写好的解码程序。

nrf24-encoder.cpp

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <iostream>
#include <time.h>
#include <sys/time.h>

using namespace std;

int16_t result_demod[210];
int result_demod_len;

FILE *file;


int main(int argc, char **argv)
{
    file = stdout;

    //preamble 10101010
    result_demod[0] = 1;
    result_demod[1] = 0;
    result_demod[2] = 1;
    result_demod[3] = 0;
    result_demod[4] = 1;
    result_demod[5] = 0;
    result_demod[6] = 1;
    result_demod[7] = 0;

    //address 11100111
    for (int i = 0; i < 5; i++)
    {
        result_demod[8 + i*8] = 1;
        result_demod[9 + i*8] = 1;
        result_demod[10 + i*8] = 1;
        result_demod[11 + i*8] = 0;
        result_demod[12 + i*8] = 0;
        result_demod[13 + i*8] = 1;
        result_demod[14 + i*8] = 1;
        result_demod[15 + i*8] = 1;
    }

    //pcf 000101000
    result_demod[48] = 0;
    result_demod[49] = 0;
    result_demod[50] = 0;
    result_demod[51] = 1;
    result_demod[52] = 0;
    result_demod[53] = 1;
    result_demod[54] = 0;
    result_demod[55] = 0;
    result_demod[56] = 0;

    //payload 00000000 00000001 00000010 00000011 00000100
    result_demod[57] = 0;
    result_demod[58] = 0;
    result_demod[59] = 0;
    result_demod[60] = 0;
    result_demod[61] = 0;
    result_demod[62] = 0;
    result_demod[63] = 0;
    result_demod[64] = 0;
    
    result_demod[65] = 0;
    result_demod[66] = 0;
    result_demod[67] = 0;
    result_demod[68] = 0;
    result_demod[69] = 0;
    result_demod[70] = 0;
    result_demod[71] = 0;
    result_demod[72] = 1;

    result_demod[73] = 0;
    result_demod[74] = 0;
    result_demod[75] = 0;
    result_demod[76] = 0;
    result_demod[77] = 0;
    result_demod[78] = 0;
    result_demod[79] = 1;
    result_demod[80] = 0;

    result_demod[81] = 0;
    result_demod[82] = 0;
    result_demod[83] = 0;
    result_demod[84] = 0;
    result_demod[85] = 0;
    result_demod[86] = 0;
    result_demod[87] = 1;
    result_demod[88] = 1;

    result_demod[89] = 0;
    result_demod[90] = 0;
    result_demod[91] = 0;
    result_demod[92] = 0;
    result_demod[93] = 0;
    result_demod[94] = 1;
    result_demod[95] = 0;
    result_demod[96] = 0;

    //CRC 11100110 11100001
    result_demod[97] = 1;
    result_demod[98] = 1;
    result_demod[99] = 1;
    result_demod[100] = 0;
    result_demod[101] = 0;
    result_demod[102] = 1;
    result_demod[103] = 1;
    result_demod[104] = 0;

    result_demod[105] = 1;
    result_demod[106] = 1;
    result_demod[107] = 1;
    result_demod[108] = 0;
    result_demod[109] = 0;
    result_demod[110] = 0;
    result_demod[111] = 0;
    result_demod[112] = 1;

    result_demod[113] = 0;
    result_demod[114] = 0;
    result_demod[115] = 0;
    result_demod[116] = 0;
    result_demod[117] = 0;
    result_demod[118] = 0;
    result_demod[119] = 0;
    result_demod[120] = 0;
    result_demod[121] = 0;
    result_demod[122] = 0;
    result_demod[123] = 0;
    result_demod[124] = 0;
    result_demod[125] = 0;
    result_demod[126] = 0;
    result_demod[127] = 0;
    result_demod[128] = 0;
    result_demod[129] = 0;
    result_demod[130] = 0;
    result_demod[131] = 0;
    result_demod[132] = 0;
    result_demod[133] = 0;
    result_demod[134] = 0;
    result_demod[135] = 0;
    result_demod[136] = 0;
    result_demod[137] = 0;
    result_demod[138] = 0;
    result_demod[139] = 0;
    result_demod[140] = 0;
    result_demod[141] = 0;
    result_demod[142] = 0;
    result_demod[143] = 0;
    result_demod[144] = 0;
    result_demod[145] = 0;
    result_demod[146] = 0;
    result_demod[147] = 0;
    result_demod[148] = 0;
    result_demod[149] = 0;




    result_demod_len = 150;

  
    fwrite(result_demod, 2, result_demod_len, file);
    fwrite(result_demod, 2, result_demod_len, file);
    fwrite(result_demod, 2, result_demod_len, file);
    fwrite(result_demod, 2, result_demod_len, file);
    fwrite(result_demod, 2, result_demod_len, file);
    fwrite(result_demod, 2, result_demod_len, file);
    fwrite(result_demod, 2, result_demod_len, file);
    fwrite(result_demod, 2, result_demod_len, file);
    fwrite(result_demod, 2, result_demod_len, file);
    fwrite(result_demod, 2, result_demod_len, file);


  
    return 0;
}
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值