OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2367|回复: 9

语法错误求助

[复制链接]

3

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
339
金钱
339
注册时间
2016-9-19
在线时间
55 小时
发表于 2016-11-14 14:13:33 | 显示全部楼层 |阅读模式
10金钱
iar的   Error[Pe167]: argument of type "void (*)(void)" is incompatible with parameter of type "void *" 请教一下这个怎么解决


最佳答案

查看完整内容[请看2#楼]

要贴这部分代码呀。 提示说参数不匹配,要求是个函数指针。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

1044

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3720
金钱
3720
注册时间
2011-5-23
在线时间
2012 小时
发表于 2016-11-14 14:13:34 | 显示全部楼层
本帖最后由 aozima 于 2016-11-14 19:39 编辑

要贴这部分代码呀。

提示说参数不匹配,要求是个函数指针。
RT-Thread RTOS 音频,WIFI,蓝牙
回复

使用道具 举报

22

主题

751

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1605
金钱
1605
注册时间
2015-6-10
在线时间
222 小时
发表于 2016-11-14 14:31:57 | 显示全部楼层
你函数指针对应的函数是怎么定义的,是不是有返回变量
回复

使用道具 举报

3

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
339
金钱
339
注册时间
2016-9-19
在线时间
55 小时
 楼主| 发表于 2016-11-14 14:35:59 | 显示全部楼层
错误语句vtimer_SetTimer(BLDC_CONTROL_TIMER,bSpeed_PID_sampling_time,&BLDC_Drive);
void vtimer_SetTimer(VtimerName_t name,timer_res_t  msec,void* pCallback)
{
        sVtimer[name].msec = msec;
        sVtimer[name].pCallback = pCallback;
}
typedef enum {VTIM0,VTIM1,VTIM2,VTIM3,VTIM4,VTIM5,VTIM6,VTIM7,VTIM8,VTIM9,VTIM10,VTIMER_NUM} VtimerName_t;

typedef u16 timer_res_t ;

typedef struct
{
        timer_res_t msec;
        void* pCallback;
} Vtimer_t,*PVtimer;
回复

使用道具 举报

3

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
339
金钱
339
注册时间
2016-9-19
在线时间
55 小时
 楼主| 发表于 2016-11-14 14:36:23 | 显示全部楼层
aozima 发表于 2016-11-14 14:29
要贴这部分代码呀。

提示说参数不匹配,要求是个函数指令。

谢谢提醒  
回复

使用道具 举报

3

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
339
金钱
339
注册时间
2016-9-19
在线时间
55 小时
 楼主| 发表于 2016-11-14 14:36:48 | 显示全部楼层
止天 发表于 2016-11-14 14:31
你函数指针对应的函数是怎么定义的,是不是有返回变量

代码贴出来了  老哥
回复

使用道具 举报

22

主题

751

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1605
金钱
1605
注册时间
2015-6-10
在线时间
222 小时
发表于 2016-11-14 14:43:47 | 显示全部楼层

你需要调用的函数是什么
回复

使用道具 举报

3

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
339
金钱
339
注册时间
2016-9-19
在线时间
55 小时
 楼主| 发表于 2016-11-14 14:48:53 | 显示全部楼层
止天 发表于 2016-11-14 14:43
你需要调用的函数是什么

void driveInit(pvdev_device_t pdevice)
{
        PBLDC_Struct_t pBLDC_Struct;
       
        dev_driveInit(pdevice);
       
        pBLDC_Struct = Get_BLDC_Struct();
        g_pMotorVar = pBLDC_Struct->pBLDC_Var;
        bHztoRPM = (u8)(60 / pBLDC_Struct->pBLDC_Const->bMotor_Pole_Pairs);
        g_pPID_Speed = pBLDC_Struct->pBLDC_Const->pPID_Speed;
        bSpeed_PID_sampling_time = pBLDC_Struct->pBLDC_Const->bSpeed_PID_sampling_time;
       
        g_pdevice = pdevice;
       
        #ifdef SENSORLESS
                pcounter_reg = &(pdevice->regs.r16[VDEV_REG16_BEMF_COUNTS]);
        #endif
        #ifdef HALL
                pcounter_reg = &(pdevice->regs.r16[VDEV_REG16_HALL_COUNTS]);
        #endif
       
        pDutyCycleCounts_reg = &(pdevice->regs.r16[VDEV_REG16_BLDC_DUTY_CYCLE_COUNTS]);
       
        vtimer_SetTimer(BLDC_CONTROL_TIMER,bSpeed_PID_sampling_time,&BLDC_Drive);
}
回复

使用道具 举报

22

主题

751

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1605
金钱
1605
注册时间
2015-6-10
在线时间
222 小时
发表于 2016-11-14 14:54:39 | 显示全部楼层
void driveInit(pvdev_device_t pdevice)

最简单的改法是把这里的参数去了;改成void driveInit(void)
回复

使用道具 举报

3

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
339
金钱
339
注册时间
2016-9-19
在线时间
55 小时
 楼主| 发表于 2016-11-15 12:49:59 | 显示全部楼层
止天 发表于 2016-11-14 14:54
void driveInit(pvdev_device_t pdevice)

最简单的改法是把这里的参数去了;改成void driveInit(void)[/ ...

谢谢了  大哥
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-25 03:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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