打印
[开发工具]

标准库函数报错

[复制链接]
1379|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
llljh|  楼主 | 2016-11-29 21:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
改怎么修改
沙发
zwll| | 2016-11-29 21:49 | 只看该作者
楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因

使用特权

评论回复
板凳
llljh|  楼主 | 2016-11-29 21:51 | 只看该作者
编译显示:
main.c(31): warning:  #188-D: enumerated type mixed with another type
        RCCU_PCLKConfig(RCCU_Div_2);              //PCLK2=24MHz APB2 periph
main.c(32): warning:  #188-D: enumerated type mixed with another type
        RCCU_FCLKConfig(RCCU_Div_2);              //PCLK1=24MHz APB1 periph (fast)
main.c(74): warning:  #188-D: enumerated type mixed with another type
  HDLC_Init_Xmit(HDLC_NRZ);                  //NRZ coding used
main.c(77): warning:  #188-D: enumerated type mixed with another type
  HDLC_Init_Recv(HDLC_PAE | HDLC_R_NRZ);
main.c(95): warning:  #223-D: function "printf" declared implicitly
        printf("rcvbuffer= %s\n\r",HDLC_RECEIVEBUFFER_BASE_LO+1); //print received buffer
main.c(99): warning:  #223-D: function "printf" declared implicitly
        printf("Test 1 Loopback failed\n\r");
main.c: 6 warnings, 0 errors
compiling timers.c...
timers.c(85): warning:  #188-D: enumerated type mixed with another type
    RTC_ITConfig( RTC_AIR | RTC_GIR, ENABLE );
timers.c: 1 warning, 0 errors
assembling STR71x.s...
linking...
Program Size: Code=10404 RO-data=44 RW-data=20 ZI-data=1740  
FromELF: creating hex file...
".\hdlc.axf" - 0 Error(s), 10 Warning(s).

部分报错函数程序如下:

HDLC_Init_Xmit(HDLC_NRZ);                  //NRZ coding used

//Set up Receiver
HDLC_Init_Recv(HDLC_PAE | HDLC_R_NRZ);

使用特权

评论回复
地板
juventus9554| | 2016-11-29 21:52 | 只看该作者
标准库函数怎么定义的

使用特权

评论回复
5
llljh|  楼主 | 2016-11-29 21:53 | 只看该作者

void HDLC_Init_Xmit(HDLC_TCTL_Flags Flags);
void HDLC_Init_Recv(HDLC_RCTL_Flags Flags);

HDLC_NRZ定义为HDLC_TCOD_ENC枚举类型

HDLC_PAE定义为HDLC_RCTL_Flags枚举类型
HDLC_R_NRZ定义为HDLC_RCOD_ENC枚举类型
这些都是标准库函数,,程序也是官方提供的函数没做任何修改

使用特权

评论回复
6
dingy| | 2016-11-29 21:55 | 只看该作者
这是警告,不是错误,应该不影响的

使用特权

评论回复
7
pengf| | 2016-11-29 21:56 | 只看该作者
当然能改更好

使用特权

评论回复
8
supernan| | 2016-11-29 21:57 | 只看该作者
警告可以暂时先不用管的!

使用特权

评论回复
9
llljh|  楼主 | 2016-11-29 21:59 | 只看该作者
哦,那我就知道怎么回事了,多谢大家,结贴了哈

使用特权

评论回复
10
yinxiangh| | 2016-11-29 22:04 | 只看该作者

是用哪个编译工具的?

使用特权

评论回复
11
houcs| | 2016-11-29 22:06 | 只看该作者
如果是KEIL,把C++ CODE中的 C99Mode打勾,选中后确定。

使用特权

评论回复
12
llljh|  楼主 | 2016-11-29 22:07 | 只看该作者
试了,没有,并报了两个错误

使用特权

评论回复
13
chenjunt| | 2016-11-29 22:08 | 只看该作者
什么错误,贴上来看看

使用特权

评论回复
14
morrisk| | 2016-11-29 22:09 | 只看该作者
warnings可以忽略,Error(s)就不行了

使用特权

评论回复
15
llljh|  楼主 | 2016-11-29 22:10 | 只看该作者
linking...
.\hdlc.axf: Error: L6218E: Undefined symbol RTC_CounterValue (referred from timers.o).
.\hdlc.axf: Error: L6218E: Undefined symbol WDG_CntOnOffConfig (referred from timers.o).
Not enough information to list image symbols.
Finished: 1 information, 0 warning and 2 error messages.

使用特权

评论回复
16
天灵灵地灵灵| | 2016-11-29 22:11 | 只看该作者
可以生成目标代码就OK了,警告有时候不是错误,,就是提醒

使用特权

评论回复
17
zyf部长| | 2016-11-29 22:11 | 只看该作者
这两个函数如果已经定义了,就把这两个函数声明一下。这是一个普通错误。

使用特权

评论回复
18
llljh|  楼主 | 2016-11-29 22:12 | 只看该作者
嗯,我再好好缕一缕吧,有了好消息及时通知大家,结贴喽

使用特权

评论回复
19
lenglx| | 2016-11-30 18:33 | 只看该作者
void HDLC_Init_Xmit(HDLC_TCTL_Flags Flags);
HDLC_Init_Xmit(HDLC_NRZ);                  //NRZ coding used

如果HDLC_NRZ不是HDLC_TCTL_Flags类型,那么就会出现上面的警告.
严格点的编译选择,甚至视这个是个错误.

如果你确定HDLC_NRZ可以传递给HDLC_Init_Xmit()函数,那么你可以这么调用
HDLC_Init_Xmit((HDLC_TCTL_Flags)HDLC_NRZ);

至于枚举类型之间做运算动作, 加减,与或等, 绝对是非法的,^_^.

main.c(95): warning:  #223-D: function "printf" declared implicitly
是因为你在使用printf的时候,没有此函数的原型.
在这之前 #include <stdio.h>即可.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

855

主题

11301

帖子

6

粉丝