OpenEdv-开源电子网

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

求助原子:编译出现“invalid redeclaration”

[复制链接]

3

主题

11

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2014-2-19
在线时间
1 小时
发表于 2014-3-5 22:57:14 | 显示全部楼层 |阅读模式

             我开了一个.h文件,里面定义了一个结构体

typedef struct//接收发送缓冲中用到的地址,
{
 u8 in;     //下一个要写入数据的地址,目前为空
 u8 out;     //下一个要读出的数据,目前有数据;
} Buf_point_struct;

 

但编译的时候出现了“invalid redeclaration of type name of 'Buf_point_strct'”,找了半天也没找到什么错误。

请帮忙解答。谢谢!附件是我整个工程。

solarcontrollor.rar

1.76 MB, 下载次数: 110

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-3-5 23:18:17 | 显示全部楼层
不要在头文件里面定义变量、结构体等。否则必定报错。
这是你的system_parameter.h:

u8  fac_us=0;//us延时倍乘数
u16 fac_ms=0;//ms延时倍乘数

u8  USART1_RX_BUF[USART_RX_LEN]; //串口1接收缓冲,最大USART_REC_LEN个字节.末字节为换行符 
u8  USART2_RX_BUF[USART_RX_LEN];//串口2接收缓冲,最大USART_REC_LEN个字节.末字节为换行符 
u8 USART1_RX_STA=0; //串口1接收标志位
u8 USART2_RX_STA=0;//串口2接收标志位 
Buf_point_struct USART1_RX_BP;
Buf_point_struct USART2_RX_BP;
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

50

主题

243

帖子

1

精华

高级会员

Rank: 4

积分
616
金钱
616
注册时间
2014-2-26
在线时间
1 小时
发表于 2014-3-6 00:54:23 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
不能在头文件定义变量??  不是很多头文件里都有 结构体的定义吗

比如库函数gpio.h里
typedef struct
{
  uint16_t GPIO_Pin;             /*!< Specifies the GPIO pins to be configured.
                                      This parameter can be any value of @ref GPIO_pins_define */

  GPIOSpeed_TypeDef GPIO_Speed;  /*!< Specifies the speed for the selected pins.
                                      This parameter can be a value of @ref GPIOSpeed_TypeDef */

  GPIOMode_TypeDef GPIO_Mode;    /*!< Specifies the operating mode for the selected pins.
                                      This parameter can be a value of @ref GPIOMode_TypeDef */
}GPIO_InitTypeDef;


另外在lcd.h里也有
//LCD地址结构体
typedef struct
{
u16 LCD_REG;
u16 LCD_RAM;
} LCD_TypeDef;
我是一只摔不死的蚂蚁!
回复 支持 反对

使用道具 举报

3

主题

11

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2014-2-19
在线时间
1 小时
 楼主| 发表于 2014-3-6 08:58:30 | 显示全部楼层
回复【2楼】正点原子:

不要在头文件里面定义变量、结构体等。否则必定报错。
我看提供的模板、库文件里面不都是定义了结构体吗?
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-3-6 12:48:10 | 显示全部楼层
回复【4楼】keensky:
---------------------------------
你看下人家怎么定义的,然后再看下你怎么定义的
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-3-6 14:10:21 | 显示全部楼层
回复【4楼】keensky:
---------------------------------
结构体定义是没问题的,但是不能有实体,否则多个.c文件调用的时候,就报错了,重复定义。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 15:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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