|
#define LED_TOGGLE_INTERVAL APP_TIMER_TICKS(4)
static uint8_t data_array[BLE_UARTS_MAX_DATA_LEN] = {'t','e',0x0d};
static void led_toggle_timeout_handler(void * p_context)
{
uint16_t length = 3;
uint32_t err_code;
UNUSED_PARAMETER(p_context);
NRF_LOG_INFO("app timer start");
do
{
err_code = ble_uarts_data_send(&m_uarts, data_array, &length, m_conn_handle);
if ((err_code != NRF_ERROR_INVALID_STATE) &&
(err_code != NRF_ERROR_RESOURCES) &&
(err_code != NRF_ERROR_NOT_FOUND))
{
APP_ERROR_CHECK(err_code);
}
} while (err_code == NRF_ERROR_RESOURCES);
}
static void timers_init(void)
{
ret_code_t err_code = app_timer_init();
APP_ERROR_CHECK(err_code);
err_code = app_timer_create(&m_led_toggle_timer_id,
APP_TIMER_MODE_REPEATED,
led_toggle_timeout_handler);
APP_ERROR_CHECK(err_code);
}
static void application_timers_start(void)
{
ret_code_t err_code;
err_code = app_timer_start(m_led_toggle_timer_id, LED_TOGGLE_INTERVAL, NULL);
APP_ERROR_CHECK(err_code);
}
在app定时器处理函数中调用 err_code = ble_uarts_data_send(&m_uarts, data_array, &length, m_conn_handle),主机连接从机成功后,app定时器运行,直到更新连接参数后,app定时器自动停止。不知道为什么
|
|