6、nRF52xx蓝牙学习(nrf_gpiote.c库函数学习)-ELink墨水屏电子纸社区-FPGA CPLD-ChipDebug

6、nRF52xx蓝牙学习(nrf_gpiote.c库函数学习)

 

续前一篇文章

2、nrfx_gpiote_in_init

程序代码如下:

nrfx_err_t nrfx_gpiote_in_init(nrfx_gpiote_pin_t               pin,                                nrfx_gpiote_in_config_t const * p_config,                                nrfx_gpiote_evt_handler_t       evt_handler) {     NRFX_ASSERT(nrf_gpio_pin_present_check(pin));     nrfx_err_t err_code = NRFX_SUCCESS;      /* Only one GPIOTE channel can be assigned to one physical pin. */     if (pin_in_use_by_gpiote(pin))     {         err_code = NRFX_ERROR_INVALID_STATE;     }     else     {         int8_t channel = channel_port_alloc(pin, evt_handler, p_config->hi_accuracy);         if (channel != NO_CHANNELS)         {             if (!p_config->skip_gpio_setup)             {                 if (p_config->is_watcher)                 {                     nrf_gpio_cfg_watcher(pin);                 }                 else                 {                     nrf_gpio_cfg_input(pin, p_config->pull);                 }                 pin_configured_set(pin);             }              if (p_config->hi_accuracy)             {                 nrf_gpiote_event_configure((uint32_t)channel, pin, p_config->sense);             }             else             {                 m_cb.port_handlers_pins[channel - GPIOTE_CH_NUM] |= (p_config->sense) <<                                                                     POLARITY_FIELD_POS;             }         }         else         {             err_code = NRFX_ERROR_NO_MEM;         }     }      NRFX_LOG_INFO("Function: %s, error code: %s.", __func__, NRFX_LOG_ERROR_STRING_GET(err_code));     return err_code; }
请登录后发表评论

    没有回复内容