OpenEdv-开源电子网

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

这个错误是什么? too few arguments in function call

[复制链接]

77

主题

198

帖子

0

精华

高级会员

Rank: 4

积分
526
金钱
526
注册时间
2013-11-25
在线时间
0 小时
发表于 2013-12-5 20:03:29 | 显示全部楼层 |阅读模式

 基于STM32的旋转编码器编译后出现了如下错误,请问到底是怎么回事?


main.c(15): error:  #165: too few arguments in function call


下面是我的main.c函数:
#include "timer.h"
#include "sys.h"
#include "usart.h"
#include "delay.h"

int main(void)
{
 delay_init();
 NVIC_Configuration();
 uart_init(9600);
 TIM3_Int_Init();
 while(1)
 {
  delay_ms(10);
  Get_Angle();
 }


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

1

帖子

0

精华

初级会员

Rank: 2

积分
93
金钱
93
注册时间
2016-9-18
在线时间
7 小时
发表于 2017-2-20 16:13:41 | 显示全部楼层
我今天也遇到这个情况了,后来我发现,原因是因为我在复制SYSTEM文件夹的时候,跑到了寄存器版本程序的文件夹复制文件,实际上应该去库函数版本程序的文件夹里复制,然后再运行就没有错误了。
回复 支持 6 反对 0

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
31
金钱
31
注册时间
2016-4-25
在线时间
3 小时
发表于 2016-4-25 19:46:38 | 显示全部楼层
正点原子 发表于 2013-12-5 21:45
delay_init()
是用的我们的么?
我们要有初始化参数的呢。

原子哥我是新手,也遇到这种问题了,同样是delay_init();在库函数的主程序中就能直接进行定义,但是在寄存器模式下就必须给括号中一个参数,很想知道是为什么啊
回复 支持 3 反对 0

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2018-8-8
在线时间
0 小时
发表于 2018-8-8 15:10:28 | 显示全部楼层
加入——Stm32_Clock_Init(9); delay_init(72); ——这两行才可以!实际时间也是准确的。
只填入72这个参数即——delay_init(72); 实际运行的时间是不准确的,今天学习寄存器跑马灯,拿秒表亲测了的!
回复 支持 2 反对 0

使用道具 举报

38

主题

2061

帖子

6

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3273
金钱
3273
注册时间
2012-1-16
在线时间
37 小时
发表于 2013-12-5 20:35:40 | 显示全部楼层
调用的函数参数少了
站在巨人的肩膀上不断的前进。。。
回复 支持 1 反对 0

使用道具 举报

0

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2016-7-13
在线时间
17 小时
发表于 2016-7-18 16:02:09 | 显示全部楼层
我是个新手,我在学习历程第一课新建工程,尝试在线调试的时候就遇到了这个问题。后来发现是system文件夹拷贝的不对,我是        delay_init();        报错了,总说我没有传递参数,可是这个函数是不需要参数的。后来把工程里system整个文件夹重新拷贝过去替换了一下,就通过编译了。
回复 支持 1 反对 0

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-12-5 20:29:18 | 显示全部楼层
参数少了。
TIM3_Int_Init,这个函数,没参数么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

77

主题

198

帖子

0

精华

高级会员

Rank: 4

积分
526
金钱
526
注册时间
2013-11-25
在线时间
0 小时
 楼主| 发表于 2013-12-5 21:02:45 | 显示全部楼层
回复【3楼】xiaoyan:
---------------------------------
我知道是这个意思,可是为什么会有这个错误呢?我的Get_Angle只返回了一个参数degree就可以,为什么会说我调用参数少了呢?
回复 支持 反对

使用道具 举报

77

主题

198

帖子

0

精华

高级会员

Rank: 4

积分
526
金钱
526
注册时间
2013-11-25
在线时间
0 小时
 楼主| 发表于 2013-12-5 21:03:33 | 显示全部楼层

请问在while(1)循环里面调用这种函数就是只能写成这种形式了吧?前面不能写void,括号里面不能写s16*degree。

回复 支持 反对

使用道具 举报

77

主题

198

帖子

0

精华

高级会员

Rank: 4

积分
526
金钱
526
注册时间
2013-11-25
在线时间
0 小时
 楼主| 发表于 2013-12-5 21:03:49 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
恩,我已经给定了arr=999,psc=0,没有变量了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-12-5 21:45:32 | 显示全部楼层
delay_init()
是用的我们的么?
我们要有初始化参数的呢。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

77

主题

198

帖子

0

精华

高级会员

Rank: 4

积分
526
金钱
526
注册时间
2013-11-25
在线时间
0 小时
 楼主| 发表于 2013-12-6 09:19:17 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
恩,用的是原子哥的delay_init(),实际上我的整个程序就是在你给的例程上修改而成的。但是我看以前的例程,使用delay时候也是直接在int main(void)里面直接调用delay_init(),然后再while(1)循环里面直接可以使用delay_ms(10)了呀??请问原子哥说的初始化参数是怎么回事?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-12-6 11:13:41 | 显示全部楼层
error:  #165: too few arguments in function call
就是提示你:165行处的函数,少了某些参数...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2015-5-14
在线时间
0 小时
发表于 2015-5-14 16:51:36 | 显示全部楼层
打开delay_init()的定义,发现void delay_init(u8 SYSCLK);看见了没有,其实是有参数的u8 SYSCLK,就是系统时钟,一般应该是72,所以这里需要填参数
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2015-5-23
在线时间
7 小时
发表于 2015-6-4 11:15:12 | 显示全部楼层
这种情况通常是某个函数调用的时候参数少了。比如调用的时候UARTCharPut(*pcBuf++),而函数的定义确是这样UARTCharPut(UART0_BASE,*pcBuf++);所以注意参数的设置正确。
回复 支持 反对

使用道具 举报

12

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
408
金钱
408
注册时间
2016-1-28
在线时间
72 小时
发表于 2016-4-18 23:28:35 | 显示全部楼层
遇到了同样的问题,函数忘给参数了
回复 支持 反对

使用道具 举报

0

主题

0

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2018-2-11
在线时间
6 小时
发表于 2017-1-21 16:20:02 | 显示全部楼层
新手,也遇到这个问题了,请问楼主的解决办法?
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2017-12-2
在线时间
0 小时
发表于 2017-12-2 14:30:51 | 显示全部楼层
shallowd 发表于 2016-7-18 16:02
我是个新手,我在学习历程第一课新建工程,尝试在线调试的时候就遇到了这个问题。后来发现是system文件夹拷 ...

弄了半天,按照你的方法换了文件,一下就好了。寄存器版本里面这个函数多了些参数
回复 支持 反对

使用道具 举报

2

主题

12

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2018-2-26
在线时间
7 小时
发表于 2018-2-26 17:01:21 | 显示全部楼层
你使用了寄存器版本的SYSTEM  
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2018-4-4
在线时间
12 小时
发表于 2018-4-4 19:35:36 | 显示全部楼层
hzxk 发表于 2017-2-20 16:13
我今天也遇到这个情况了,后来我发现,原因是因为我在复制SYSTEM文件夹的时候,跑到了寄存器版本程序的文件 ...

恍然大悟
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2019-3-8
在线时间
2 小时
发表于 2019-3-19 21:30:19 | 显示全部楼层
qs梦宇 发表于 2018-8-8 15:10
**** 作者被禁止或删除 内容自动屏蔽 ****

首先感谢你的解决方案,程序通过了,主要问题是我没有填写参数,但是当72改成8时时间会变得比较正常,下面定义的时间一样的情况下,数值越高,延时越长,可以试着将72改成8试试
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2019-8-8
在线时间
0 小时
发表于 2019-8-8 20:17:29 | 显示全部楼层
LizzyC1991 发表于 2015-5-14 16:51
**** 作者被禁止或删除 内容自动屏蔽 ****

我想询问一下您怎么解决的
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2019-7-17
在线时间
6 小时
发表于 2020-3-4 16:09:04 | 显示全部楼层
刚刚学,很有帮助。用到寄存器的了
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2020-4-2
在线时间
1 小时
发表于 2020-4-2 23:38:41 | 显示全部楼层
hzxk 发表于 2017-2-20 16:13
我今天也遇到这个情况了,后来我发现,原因是因为我在复制SYSTEM文件夹的时候,跑到了寄存器版本程序的文件 ...

原来这样子啊
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-24 18:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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