app_easy_timer不适用于user_app_on_init
DA14530和DA14531.
3个月前
app_easy_timer不适用于user_app_on_init
张贴了gustavo.laureano.65分 5回复你好,
我跟着本指南:
http://lpccs-docs.dialog-semiconductor.com/Tutorial_SDK6/adv_data.html
要使广告数据动态,但由于某种原因,在从user_app_on_init调用时无法启动计时器,但在从另一个地方调用时工作(如on_disconnect)
在被称为内app_on_init功能(与断点检查),并没有落入“返回EASY_TIMER_INVALID_TIMER”(也检查与断点)
任何想法为什么要从init开始的计时器?
谢谢
此致
古斯塔沃
3个月前
嗨PM_DIALOG.
谢谢,它有效,当我从adv_start用户回调开始时,我所做的唯一更改就是始终取消任何以前的计时器,否则它正在生成并行运行的多个计时器实例:
空隙user_app_adv_start(无效){app_easy_timer_cancel(app_adv_data_update_timer_used);app_adv_data_update_timer_used = app_easy_timer(APP_ADV_DATA_UPDATE_TO,adv_data_update_timer_cb);//一秒钟单拍计时器app_easy_gap_undircted_advertise_start();}
但是你有什么想法为什么无法从App_init回调开始定时器?
我搜索了文档,没有明确的原因,为什么它不起作用。
另一个(无关)问题:
我不得不使用UART RX当使用UART ROM代码的DA14531(与和#undef CFG_UART1_SDK),它永远不会调用注册的回调,当我设置为使用SDK UART实现(#定义CFG_UART1_SDK)只能中断问题,但我找不到任何信息,说明为什么ROM代码无法正常工作,这是ROM代码上的错误吗?或者我需要在处理中断时始终使用编译的驱动程序?
谢谢!
古斯塔沃
3个月前
以下是相关零件:
user_periph_setup.c上的外设初始化
静态常量uart_cfg_t uart_cfg = {.baud_rate = UART_BAUDRATE_115200,.data_bits = UART_DATABITS_8,.parity = UART_PARITY_NONE,.stop_bits = UART_STOPBITS_1,.auto_flow_control = UART_AFCE_DIS,.use_fifo = UART_FIFO_DIS,.tx_fifo_tr_lvl = UART_TX_FIFO_LEVEL_0,.rx_fifo_tr_lvl = UART_RX_FIFO_LEVEL_0,.intr_priority = 2,};void periph_init(void){//在Boost模式下,使DCDC转换器能够为已使用的GPIOS Syscntl_dcdc_turn_oN_in_in_In_Boost提供vbat_high供应Vbat_high(syscntl_dcdc_level_3v0);// rom修补程序patch_func();//初始化外设UART_INITIALIZE(UART1,&UART_CFG);gpio_configurepin(uartx_tx_gpio_port,uartx_tx_gpio_pin,输出,pid_uart1_tx,false);GPIO_CONFIGUREPIN(UARTX_RX_GPIO_PORT,UARTX_RX_GPIO_PIN,INPUT,PID_UART1_RX,FALSE);//启用pads gpio_set_pad_latch_en(true);}
我的user.c上的代码:
静态无效uart_read_cb(uint16_t长度){//按下接收字节到环形缓冲ringbuffer_add(&ringbuffer_inst_rx,&rxbuf_cb);//启动下一个异步读取1个字符。UART_RECEIVE(UART1,&RXBUF_CB,1,UART_OP_INTR);}空隙user_app_on_init(无效){ringbuffer_init(&ringbuffer_inst_rx,ringbufer_buffer_rx,的sizeof(uint8_t),64);UART_REGISTER_RX_CB(UART1,UART_READ_CB);UART_RECEIVE(UART1,&RXBUF_CB,1,UART_OP_INTR);/ *启动UART接收* / default_app_on_init();}
(阻塞模式与uart_send)总是与工作中断,只有当我#定义CFG_UART1_SDK作品发送数据,而接收数据,否则uart_read_cb不会被调用
3个月前
嗨gustavo,
谢谢你的问题。我建议在user_app_on_init()之后设置计时器。请尝试以下更改:
在user_config.h:
在user_callback_config.h:
在user_empty_peripherala_template.h:
在user_empty_peripheral_template.c:
谢谢,PM_DIALOG.