OpenEdv-开源电子网

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

keil5报错,求解救#260-D: explicit type is missing ("int" assumed)

[复制链接]

3

主题

12

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
222
金钱
222
注册时间
2015-12-18
在线时间
34 小时
发表于 2016-6-27 17:44:53 | 显示全部楼层 |阅读模式
求原子哥指点啊!新买的F4板子,出厂程序,一切工作正常。但是把例程下载进去就不行了,主要是3.5寸液晶无法点亮了。用F4板子库函数版编译完程序一直报错。            error:  #260-D: explicit type is missing ("int" assumed)注释掉如下代码
#if 1
#pragma import(__use_no_semihosting)            
//标准库需要的支持函数                 
struct __FILE
{
        int handle;
};

FILE __stdout;      
//定义_sys_exit()以避免使用半主机模式   
_sys_exit(int x)
{
        x = x;
}
//重定义fputc函数
int fputc(int ch, FILE *f)
{        
        while((USART1->SR&0X40)==0);//循环发送,直到发送完毕   
        USART1->DR = (u8) ch;      
        return ch;
}
#endif


选中use MicroLIB库,编译可以通过,但是程序工作异常。液晶无法点亮。

尝试了TFTLCD例程、GPS模块例程都失败,跑马灯例程正常。

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

使用道具 举报

3

主题

12

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
222
金钱
222
注册时间
2015-12-18
在线时间
34 小时
 楼主| 发表于 2016-6-27 21:59:21 来自手机 | 显示全部楼层
找到解决办法了_sys_exit(int x) 前加void就好。http://www.openedv.com/forum.php?mod=viewthread&tid=77400&fromguid=hot&extra=&mobile=2
回复 支持 4 反对 0

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10572
金钱
10572
注册时间
2017-2-18
在线时间
1914 小时
发表于 2017-6-14 01:35:50 | 显示全部楼层
894119318 发表于 2017-6-13 09:04
我加void,还是错误

加void紧接着空格一下就OK了
回复 支持 3 反对 0

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2016-9-26
在线时间
3 小时
发表于 2017-6-23 10:54:10 | 显示全部楼层
我解释下为什么原子的的工程不会错,而你的工程有问题,可能你工程设置里面勾选了C99 mode,最新的编译规格更加的严格导致的。
回复 支持 2 反对 0

使用道具 举报

0

主题

17

帖子

0

精华

高级会员

Rank: 4

积分
964
金钱
964
注册时间
2016-4-3
在线时间
74 小时
发表于 2016-11-21 16:18:06 | 显示全部楼层
在前面加void即可,你可以看到这是一个函数定义,按照程序编写的规定来说是需要指定一个返回类型的,但是原程序没有给出函数的返回类型(虽然这个函数也确实没有返回值)。keil软件检查了这个问题,并且将其定为错误。因为这个函数没有返回值,所以建议改为加上void。实际上加上int或其他类型也是可以的,只是因为没有返回值所以可能会报警,但是也不会报错了。
回复 支持 1 反对 0

使用道具 举报

3

主题

12

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
222
金钱
222
注册时间
2015-12-18
在线时间
34 小时
 楼主| 发表于 2016-6-27 17:59:03 | 显示全部楼层
注释掉LCD_Init()中//         printf(" LCD ID:%x\r\n",lcddev.id); //打印LCD ID   LCD工作正常
回复 支持 反对

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-6-27 18:37:25 | 显示全部楼层
你知道注释那段代码后, printf的原型么,知道注释后 printf是输出在哪么
回复 支持 反对

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-6-27 18:38:20 | 显示全部楼层
求助发共享,很多人是不鸟这种帖子的
回复 支持 反对

使用道具 举报

3

主题

12

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
222
金钱
222
注册时间
2015-12-18
在线时间
34 小时
 楼主| 发表于 2016-6-27 21:41:21 来自手机 | 显示全部楼层
憨厚诚实大叔 发表于 2016-6-27 18:37
你知道注释那段代码后, printf的原型么,知道注释后 printf是输出在哪么

谢大神指点。编译通不过,下载不了程序,我只能注释掉,我把有关printf输出也都注释掉了。确认一下硬件模块没烧掉。报错有什么办法解决吗
回复 支持 反对

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2016-9-3
在线时间
3 小时
发表于 2016-10-9 17:27:59 | 显示全部楼层
最近我也遇到了这个问题,我用的是stm32f4的片子,Pack用的是2.9.0的,把它remove掉,下载用2.8.0的就行了
回复 支持 反对

使用道具 举报

44

主题

298

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
209
金钱
209
注册时间
2016-9-9
在线时间
84 小时
发表于 2016-11-16 14:43:32 | 显示全部楼层
不知道 ,有时候用printf就是不好使的,什么反应都没有。
回复 支持 反对

使用道具 举报

44

主题

298

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
209
金钱
209
注册时间
2016-9-9
在线时间
84 小时
发表于 2016-11-16 14:45:04 | 显示全部楼层
guama 发表于 2016-6-27 21:59
找到解决办法了_sys_exit(int x) 前加void就好。http://www.openedv.com/forum.php?mod=viewthread&tid=774 ...

为什么前面突然要加 VOID
回复 支持 反对

使用道具 举报

20

主题

134

帖子

0

精华

高级会员

Rank: 4

积分
550
金钱
550
注册时间
2016-7-26
在线时间
90 小时
发表于 2016-12-26 15:33:43 | 显示全部楼层
YWilson 发表于 2016-11-21 16:18
在前面加void即可,你可以看到这是一个函数定义,按照程序编写的规定来说是需要指定一个返回类型的,但是原 ...

按照楼上的方法解决了,赞一个,可是为什么好像例程中都有这个问题,原子哥在编译的过程中就不会出错吗?
回复 支持 反对

使用道具 举报

0

主题

17

帖子

0

精华

高级会员

Rank: 4

积分
964
金钱
964
注册时间
2016-4-3
在线时间
74 小时
发表于 2016-12-30 22:09:21 | 显示全部楼层
wanyingwe 发表于 2016-12-26 15:33
按照楼上的方法解决了,赞一个,可是为什么好像例程中都有这个问题,原子哥在编译的过程中就不会出错吗?

这是版本问题,现在的新版本更新后检查更加严格了,所以在这里报错,如果是旧版本的keil软件就不会报错。原子哥当初写例程的时候应该用的还是旧版本的keil软件。
回复 支持 反对

使用道具 举报

20

主题

134

帖子

0

精华

高级会员

Rank: 4

积分
550
金钱
550
注册时间
2016-7-26
在线时间
90 小时
发表于 2017-1-9 14:20:04 | 显示全部楼层
YWilson 发表于 2016-12-30 22:09
这是版本问题,现在的新版本更新后检查更加严格了,所以在这里报错,如果是旧版本的keil软件就不会报错。 ...

哦~多谢指点~
回复 支持 反对

使用道具 举报

chenyuren 该用户已被删除
发表于 2017-3-1 20:52:17 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

17

主题

329

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2532
金钱
2532
注册时间
2016-3-6
在线时间
393 小时
发表于 2017-3-30 17:49:17 | 显示全部楼层
不错
路漫漫其修远兮,吾将上下而求索。
回复 支持 反对

使用道具 举报

就是我啊 该用户已被删除
发表于 2017-4-10 21:25:36 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

38

主题

144

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
284
金钱
284
注册时间
2017-3-18
在线时间
85 小时
发表于 2017-4-22 18:30:40 | 显示全部楼层
guama 发表于 2016-6-27 21:59
找到解决办法了_sys_exit(int x) 前加void就好。http://www.openedv.com/forum.php?mod=viewthread&tid=774 ...

我也遇到了这个问题,谢谢楼主的答案。
回复 支持 反对

使用道具 举报

7

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2017-5-6
在线时间
18 小时
发表于 2017-5-16 10:23:03 | 显示全部楼层
我的加 void  编译还是出错误
回复 支持 反对

使用道具 举报

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2017-5-5
在线时间
13 小时
发表于 2017-6-13 09:04:04 | 显示全部楼层
我加void,还是错误
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2016-10-10
在线时间
6 小时
发表于 2017-6-16 15:24:59 | 显示全部楼层
peng1554 发表于 2017-6-14 01:35
加void紧接着空格一下就OK了

谢谢大神指导
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2017-3-7
在线时间
12 小时
发表于 2017-6-24 11:13:40 | 显示全部楼层
laughing023 发表于 2017-6-23 10:54
我解释下为什么原子的的工程不会错,而你的工程有问题,可能你工程设置里面勾选了C99 mode,最新的编译规格 ...

我也碰到这问题了。的确将C99勾去掉就行了
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2017-3-7
在线时间
12 小时
发表于 2017-6-24 11:14:31 | 显示全部楼层
laughing023 发表于 2017-6-23 10:54
我解释下为什么原子的的工程不会错,而你的工程有问题,可能你工程设置里面勾选了C99 mode,最新的编译规格 ...

我也碰到这问题了。的确将 "C99mode 勾去掉就行了
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2017-3-7
在线时间
12 小时
发表于 2017-6-24 11:14:55 | 显示全部楼层
laughing023 发表于 2017-6-23 10:54
我解释下为什么原子的的工程不会错,而你的工程有问题,可能你工程设置里面勾选了C99 mode,最新的编译规格 ...

我也碰到这问题了。的确将 "C99mode" 勾去掉就行了
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2017-7-9
在线时间
0 小时
发表于 2017-10-8 15:56:49 | 显示全部楼层
peng1554 发表于 2017-6-14 01:35
加void紧接着空格一下就OK了

正解!!谢谢!!
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2017-9-5
在线时间
5 小时
发表于 2017-11-14 09:44:52 | 显示全部楼层
加void 和 去掉C99 , 哪个解决方式最好呢?
回复 支持 反对

使用道具 举报

3

主题

12

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
222
金钱
222
注册时间
2015-12-18
在线时间
34 小时
 楼主| 发表于 2017-11-15 11:18:14 | 显示全部楼层
wuguandong 发表于 2017-11-14 09:44
加void 和 去掉C99 , 哪个解决方式最好呢?

个人感觉,加void靠谱点吧
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2019-10-24
在线时间
4 小时
发表于 2020-5-23 16:52:20 | 显示全部楼层
laughing023 发表于 2017-6-23 10:54
**** 作者被禁止或删除 内容自动屏蔽 ****

是的,我勾选了,去掉就好了;或者勾上,加void空格
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-28 14:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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