找回密码
 立即注册

微信扫码登录

查看: 434|回复: 3

回调函数参数编译报错

[复制链接]

10

主题

13

回帖

124

积分

注册会员

积分
124
发表于 2024-9-13 21:37:32 | 显示全部楼层 |阅读模式
本帖最后由 长虹掩日 于 2024-9-13 21:46 编辑

我对c还不太熟练,有个语法问题
正常调用
int cb(void *arg)
{
        drv_gpio_write(TEST_GPIO_0, 1);
        return -1;
}
TL_ZB_TIMER_SCHEDULE(cb, NULL, 3 * 1000);
  

报错 passing argument 1 of 'ev_timer_taskPost' from incompatible pointer type
int cb(void *arg)
{
        drv_gpio_write(TEST_GPIO_0, (int)*arg);
        return -1;
}
TL_ZB_TIMER_SCHEDULE(cb, 0, 3 * 1000);

我想在函数TL_ZB_TIMER_SCHEDULE中带参数,但是编译过程中代码报错。

27

主题

121

回帖

447

积分

版主

积分
447
发表于 2024-9-18 16:30:26 | 显示全部楼层
你好,

“passing argument 1 of 'ev_timer_taskPost' from incompatible pointer type”提示参数类型不匹配。

你可以定义一个变量,然后将该变量的地址作为参数传入。

10

主题

13

回帖

124

积分

注册会员

积分
124
 楼主| 发表于 2024-9-19 15:44:06 | 显示全部楼层
本帖最后由 长虹掩日 于 2024-9-19 15:51 编辑
TL_YB 发表于 2024-9-18 16:30
你好,

“passing argument 1 of 'ev_timer_taskPost' from incompatible pointer type”提示参数类型不匹 ...

int led_test(u8 *arg) // 使用例子中的void * 类型会报错
{
  drv_gpio_write(BREATH_LED, *arg);
  return 0;
}
  
u8 temp = 0;
TL_ZB_TIMER_SCHEDULE(led_test, &temp, 1000);


依然是同一个错误,只是变成了警告

27

主题

121

回帖

447

积分

版主

积分
447
发表于 2024-9-20 15:18:00 | 显示全部楼层
本帖最后由 TL_YB 于 2024-9-20 15:21 编辑
长虹掩日 发表于 2024-9-19 15:44
int led_test(u8 *arg) // 使用例子中的void * 类型会报错

u8 val = 0;

static s32 test(void *arg)
{
        u8 *ptr = (u8 *)arg;
        val = *ptr;

        return -1;
}

u8 init = 100;
TL_ZB_TIMER_SCHEDULE(test, (void *)&init, 1000);


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Telink forum ( 沪ICP备17008231号-1 )

GMT+8, 2024-11-24 06:01 , Processed in 0.083149 second(s), 18 queries .

Powered by Telink 隐私政策

泰凌微电子版权所有 © 。保留所有权利。 2024

快速回复 返回顶部 返回列表