Firefly开源社区

标题: BLE事件创建步骤 [打印本页]

作者: 卜道翁先生    时间: 2015-8-31 16:29
标题: BLE事件创建步骤
1,定义事件及优先级
#define EVENT_MLX90614_READ_ID        8
2,编写自定义事件
void iic_mlx90614_read_data_handler(void)
{
        volatile char        temp;       
        temp=(char)SMBus_ReadTemp();
        uart_uart_SetTXD(QN_UART0,temp);
       
}
3,设置事件回调函数
if(KE_EVENT_OK != ke_evt_callback_set(EVENT_MLX90614_READ_ID,
                                            iic_mlx90614_read_data_handler))
    {
        ASSERT_ERR(0);
    }
4,发起事件但不清除
ke_evt_set(1UL << EVENT_MLX90614_READ_ID);
目前做了这四步,但是未创建成功。等待解救
作者: 安安    时间: 2015-8-31 17:42
未创建成功是什么意思?是发出错误警告还是没有调用到事件所对应的处理函数?
作者: 卜道翁先生    时间: 2015-9-1 09:43
安安 发表于 2015-8-31 17:42
未创建成功是什么意思?是发出错误警告还是没有调用到事件所对应的处理函数?

没有调用到
作者: 安安    时间: 2015-9-1 09:55
1.你的回调函数出现了UART,应该是要打印数据吧,在BLE中有提供QPRINTF作为标准化输出,你可以直接使用这个替代最后一句代码,然后看看是否执行到这个函数。这种使用底层代码直接发送的方法我没有验证过,不知道在BLE上运行会不会出问题。
2.因为串口是最后才打印的,不能确定是否函数是否没有被调用到并且运行结束,应该在函数进入的时候就加入一个调试打印信息。
3.确定事件标识(#define EVENT_MLX90614_READ_ID        8)没有冲突

经过上面修改如果还是确认没有进入到回调函数,请贴出你的事件发起所在函数位置。
作者: 卜道翁先生    时间: 2015-9-1 10:04
安安 发表于 2015-9-1 09:55
1.你的回调函数出现了UART,应该是要打印数据吧,在BLE中有提供QPRINTF作为标准化输出,你可以直接使用这个 ...

请问事件发起函数要加在什么位置?
作者: 安安    时间: 2015-9-1 15:40
参考BLE的例程中时间的发起,参考button事件的发起,还有bass中adc采集事件的发起也可以参考一下。
作者: 卜道翁先生    时间: 2015-9-1 16:05
安安 发表于 2015-9-1 15:40
参考BLE的例程中时间的发起,参考button事件的发起,还有bass中adc采集事件的发起也可以参考一下。

刚刚搞成功了,谢啦
作者: 安安    时间: 2015-9-1 17:47
本帖最后由 安安 于 2015-9-1 17:48 编辑
卜道翁先生 发表于 2015-9-1 16:05
刚刚搞成功了,谢啦

分析一下你 的经验呗,之前是哪里出错了?:lol:lol:lol

作者: 卜道翁先生    时间: 2015-9-4 00:56
安安 发表于 2015-9-1 17:47
分析一下你 的经验呗,之前是哪里出错了?

发起事件位置不对,不知道这历程用了什么实时系统?




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1