您当前的位置: 首页 > 

仙剑情缘

暂无认证

  • 2浏览

    0关注

    333博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

NRF52832 SDK15.3 S332蓝牙和ANT+实现PA模式

仙剑情缘 发布时间:2019-09-13 09:11:57 ,浏览量:2

  1. 在sdk_config.h中定义宏
//  PA功能配置菜单
//  PA TX引脚配置
// 
#ifndef PA_TX_PIN
#define PA_TX_PIN 24
#endif
//  PA RX引脚配置
// 
#ifndef PA_RX_PIN
#define PA_RX_PIN 20
#endif
// 

2.  PA功能函数实现

void pa_lna_assist(uint32_t gpio_pa_pin, uint32_t gpio_lna_pin);

//--------------------ANT PA----------------------------------------
void setAntPaLnaConfig(uint32_t gpio_pa_pin, uint32_t gpio_lna_pin)
{
	 ret_code_t err_code;
		ANT_PA_LNA_CONFIG ant_pa_lna_config;
	  ant_pa_lna_config.PA_CONFIG.bEnabled = true;
	  ant_pa_lna_config.PA_CONFIG.ucGPIO = gpio_pa_pin;
	  ant_pa_lna_config.PA_CONFIG.bActiveState = 1;
	  ant_pa_lna_config.LNA_CONFIG.bEnabled = true;
	  ant_pa_lna_config.LNA_CONFIG.ucGPIO = gpio_lna_pin;
	  ant_pa_lna_config.LNA_CONFIG.bActiveState = 1;
	
	    nrf_ppi_channel_t ppi_set_ch;
      nrf_ppi_channel_t ppi_clr_ch;
	    uint32_t gpio_toggle_ch = 0;
	
	
	   err_code = nrf_drv_ppi_channel_alloc(&ppi_set_ch);
    APP_ERROR_CHECK(err_code);

    err_code = nrf_drv_ppi_channel_alloc(&ppi_clr_ch);
    APP_ERROR_CHECK(err_code);
	
	  ant_pa_lna_config.ucGPIOTECh = gpio_toggle_ch;
	  ant_pa_lna_config.ucPPIChEnable = ppi_set_ch;
	  ant_pa_lna_config.ucPPIChDisable = ppi_clr_ch;
	
		sd_ant_config_pa_lna_set(&ant_pa_lna_config);
	
}
//------------------BLE PA----------------------------------------------
void pa_lna_assist(uint32_t gpio_pa_pin, uint32_t gpio_lna_pin)
{
    ret_code_t err_code;

      nrf_ppi_channel_t ppi_set_ch;
      nrf_ppi_channel_t ppi_clr_ch;
	    uint32_t gpio_toggle_ch = 1;
	
	
	  err_code = nrf_drv_ppi_channel_alloc(&ppi_set_ch);
    APP_ERROR_CHECK(err_code);

    err_code = nrf_drv_ppi_channel_alloc(&ppi_clr_ch);
    APP_ERROR_CHECK(err_code);
    // Configure SoftDevice PA/LNA assist
    ble_opt_t opt;
    memset(&opt, 0, sizeof(ble_opt_t));
    // Common PA/LNA config
    opt.common_opt.pa_lna.gpiote_ch_id  = gpio_toggle_ch;        // GPIOTE channel
    opt.common_opt.pa_lna.ppi_ch_id_clr = ppi_clr_ch;            // PPI channel for pin clearing
    opt.common_opt.pa_lna.ppi_ch_id_set = ppi_set_ch;            // PPI channel for pin setting
    // PA config
    opt.common_opt.pa_lna.pa_cfg.active_high = 1;                // Set the pin to be active high
    opt.common_opt.pa_lna.pa_cfg.enable      = 1;                // Enable toggling
    opt.common_opt.pa_lna.pa_cfg.gpio_pin    = gpio_pa_pin;      // The GPIO pin to toggle
  
    // LNA config
    opt.common_opt.pa_lna.lna_cfg.active_high  = 1;              // Set the pin to be active high
    opt.common_opt.pa_lna.lna_cfg.enable       = 1;              // Enable toggling
    opt.common_opt.pa_lna.lna_cfg.gpio_pin     = gpio_lna_pin;   // The GPIO pin to toggle

    err_code = sd_ble_opt_set(BLE_COMMON_OPT_PA_LNA, &opt);
    APP_ERROR_CHECK(err_code);
		setAntPaLnaConfig(gpio_pa_pin,gpio_lna_pin);
}

3.在main函数主循环前调用pa_lna_assist函数即可实现PA功能

 

 

 

关注
打赏
1658017818
查看更多评论
立即登录/注册

微信扫码登录

0.0536s