打印

C语言白痴求助

[复制链接]
2258|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
HopeStars|  楼主 | 2012-3-27 11:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
主程序:
/*==============外部文件============*/
#include "STM8S103K.h"
#include "CarL.h"
CarL.h中的内容如下:
#define Red5PwmH TIM1_CCR2H
#define Red5PwmL TIM1_CCR2L
#define Gre5PwmH TIM1_CCR1H
#define Gre5PwmL TIM1_CCR1L
/*==============全局变量===========*/

extern void InitGpio(void);
extern void ClockSwitch(void);
extern void Time1PwmSet(void);
extern void Time2PwmSet(void);
extern void Time4Set(void);
extern void ClrTimPwmL(void);
main()
{
InitGpio();
ClockSwitch();
Time1PwmSet();
Time2PwmSet();
Time4Set();
_asm("rim");    //允许CPU全局中断
while (1)
{
  Gre5PwmH = 01;  //第一路脉宽
 Time2PwmSet();
  }
}

外部函数,不和Main函数同一个文件:
void ClrTimPwmL(void)
{
Red5PwmL = 0;
Gre5PwmL = 0;
}

本人有用的是COMSIC编译器,
编译出现:
#error cpstm8 timepwmset.c:51(1+8) Gre5PwmL undefined
#error cpstm8 timepwmset.c:50(1+8) Red5PwmL undefined
说Gre5PwmL 和Red5PwmL 没有定义
请问高手:#define是不是不能定义外部文件中的函数的内容呢
沙发
HopeStars|  楼主 | 2012-3-27 11:30 | 只看该作者
香水城,帮帮我呀

使用特权

评论回复
板凳
香水城| | 2012-3-27 11:42 | 只看该作者
看不到,你哪里定义了外部文件中的函数的内容?

使用特权

评论回复
地板
HopeStars|  楼主 | 2012-3-27 11:45 | 只看该作者
extern void ClrTimPwmL(void);
下面的这个函数是放在别的文件中的
void ClrTimPwmL(void)
{
Red5PwmL = 0;
Gre5PwmL = 0;
}

使用特权

评论回复
5
香水城| | 2012-3-27 11:46 | 只看该作者
extern void ClrTimPwmL(void);
下面的这个函数是放在别的文件中的
void ClrTimPwmL(void)
{
Red5PwmL = 0;
Gre5PwmL = 0;
}
HopeStars 发表于 2012-3-27 11:45


你在这个文件中定义了这2个变量吗?

使用特权

评论回复
6
HopeStars|  楼主 | 2012-3-27 11:46 | 只看该作者
我把
void ClrTimPwmL(void)
{
Red5PwmL = 0;
Gre5PwmL = 0;
}
这个函数和Main写在一起,就不会出错了

使用特权

评论回复
7
香水城| | 2012-3-27 11:53 | 只看该作者
再问一遍:你在包含ClrTimPwmL()的这个文件中定义了那2个变量吗?

使用特权

评论回复
8
风走孤寒| | 2012-3-27 12:03 | 只看该作者
我也不知道,你可以试试,变量和函数都在外部文件,你要调用的话,你在主文件配置,extern void ClockSwitch(void);
extern 很有用的,extern (数据类型)Red5PwmL;它告诉你其变量在别的文件已经定义了。

使用特权

评论回复
9
lai832| | 2012-3-27 16:21 | 只看该作者
外部函数,不和Main函数同一个文件:
void ClrTimPwmL(void)
{
Red5PwmL = 0;
Gre5PwmL = 0;
}

有包含下面的文件吗?

CarL.h中的内容如下:
#define Red5PwmH TIM1_CCR2H
#define Red5PwmL TIM1_CCR2L
#define Gre5PwmH TIM1_CCR1H
#define Gre5PwmL TIM1_CCR1L

使用特权

评论回复
10
abcsmile| | 2012-3-27 17:41 | 只看该作者
路过学习;P

使用特权

评论回复
11
wankeng| | 2012-3-27 17:54 | 只看该作者
在定义函数void ClrTimPwmL(void)的文件中加上文件包含命令:#include "CarL.h"

使用特权

评论回复
12
缪僚雾人| | 2012-3-28 08:26 | 只看该作者
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

4

帖子

0

粉丝