重新映射接口
#define KK NRF_GPIO_PIN_MAP(1,9) //定义
nrf_gpio_cfg_output(26);//初始化为输出
nrf_gpio_cfg_input(5,NRF_GPIO_PIN_PULLUP);//初始化为上拉输入
nrf_gpio_pin_read(5) == 0 读取IO 状态 0是低电平 1是高电平
nrf_gpio_pin_set(26);设置电平为1
nrf_gpio_pin_clear();设置为0
nrf_drv_gpiote_out_task_trigger(18);//翻转
void log_init(void)//log初始化
{
ret_code_t err_code = NRF_LOG_INIT(NULL);
APP_ERROR_CHECK(err_code);
NRF_LOG_DEFAULT_BACKENDS_INIT();
}
NRF_LOG_PROCESS();//主循环必须定期执行
//定时器初始化
const nrfx_timer_t TIMER_LED = NRFX_TIMER_INSTANCE(0);
//Timer事件回调函数
void timer_led_event_handler(nrf_timer_event_t event_type, void* p_context)
{
switch (event_type)
{
//因为我们配置的是使用CC通道0,所以事件回调函数中判断NRF_TIMER_EVENT_COMPARE0事件
case NRF_TIMER_EVENT_COMPARE0:
//翻转指示灯D1状态
// nrf_gpio_pin_toggle(18);
NRF_LOG_INFO("time0 runing ..\n");
break;
default:
//Do nothing.
break;
}
}
//定时器初始化
void timer_init(void)
{
uint32_t err_code = NRF_SUCCESS;
//定时时间200ms
uint32_t time_ms = 1000;
//保存定时时间对应的Ticks
//定义定时器配置结构体,并使用默认配置参数初始化结构体
nrfx_timer_config_t timer_cfg = NRFX_TIMER_DEFAULT_CONFIG;
//初始化定时器,初始化时会注册timer_led_event_handler事件回调函数
err_code = nrfx_timer_init(&TIMER_LED, &timer_cfg, timer_led_event_handler);
APP_ERROR_CHECK(err_code);
uint32_t time_ticks;
//定时时间(单位ms)转换为ticks
time_ticks = nrfx_timer_ms_to_ticks(&TIMER_LED, time_ms);
//设置定时器捕获/比较通道及该通道的比较值,使能通道的比较中断
nrfx_timer_extended_compare( &TIMER_LED, NRF_TIMER_CC_CHANNEL0, time_ticks, NRF_TIMER_SHORT_COMPARE0_CLEAR_MASK, true);
}
nrfx_timer_enable(&TIMER_LED); //启动定时器