找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1529|回复: 5
打印 上一主题 下一主题
收起左侧

nmea.h(23): error C141: syntax error near '*', expected ')问题出在哪?

[复制链接]
跳转到指定楼层
楼主
ID:939553 发表于 2023-10-21 17:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
// .c 文件

#include "nmea.h"


NMEA_INFO_TYPE xdata nmea_info;

//默认为主机
void nmea_init(void)
{
        memset(&nmea_info, 0, sizeof(NMEA_INFO_TYPE));
        nmea_info.loca_addr = '0';
        nmea_info.command[0] = 'R';
        nmea_info.command[1] = '1';
        nmea_info.command[2] = 0;
}

void FNNN (UART0_INFO_TYPE * uart0_info)
{
        uart0_info->uart0_mode = 1;
}


// .h文件
#ifndef _NMEA_
#define _NMEA_

#include "common.h"
#include "uart.h"
#include "tft.h"

//常变量定义
typedef struct
{
        uint8_t loca_addr;        //本机地址
        uint8_t command[5];        //发送的命令
}NMEA_INFO_TYPE;

extern NMEA_INFO_TYPE xdata nmea_info;


//函数
void nmea_init(void);


void FNNN (UART0_INFO_TYPE * uart0_info);

#endif


将以上两个文件,单独新建工程没有问题

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2023-10-21 20:51 | 只看该作者
void FNNN (UART0_INFO_TYPE * uart0_info);
这句有问题吧,你查查对应的h文件。
回复

使用道具 举报

板凳
ID:939553 发表于 2023-10-21 22:36 | 只看该作者
Hephaestus 发表于 2023-10-21 20:51
void FNNN (UART0_INFO_TYPE * uart0_info);
这句有问题吧,你查查对应的h文件。

typedef struct  
{
        uint8_t uart0_mode;                        //防灾是ASCII或NMEA0183格式,MODBUS是时间间隔通信
        uint8_t uart0_rx_timer;        //超时判断
        uint8_t uart0_rx_over;
        uint8_t uart0_rx_data[UART0_BUFF_SIZE] ,uart0_tx_data[UART0_BUFF_SIZE];
        uint8_t uart0_rx_count;        //串口接收/发送计数器
}UART0_INFO_TYPE;

//变量
extern UART0_INFO_TYPE xdata uart0_info;
回复

使用道具 举报

地板
ID:939553 发表于 2023-10-21 22:38 | 只看该作者
#ifndef _UART_H_
#define _UART_H_

#include "common.h"
#include "hwinit.h"
#include "timer.h"

#define UART0_BUFF_SIZE  100                //缓存最大长度
#define UART0_RX_TIMEOUT 20/10        //1字节接收超时,20ms

typedef struct  
{
        uint8_t uart0_mode;                        //防灾是ASCII或NMEA0183格式,MODBUS是时间间隔通信
        uint8_t uart0_rx_timer;        //超时判断
        uint8_t uart0_rx_over;
        uint8_t uart0_rx_data[UART0_BUFF_SIZE] ,uart0_tx_data[UART0_BUFF_SIZE];
        uint8_t uart0_rx_count;        //串口接收/发送计数器
}UART0_INFO_TYPE;

//变量
extern UART0_INFO_TYPE xdata uart0_info;

enum
{
        UART0_MODBUS_MODE = 0,        //默认为MODBUS模式
        UART0_ASCII_MODE                                //防灾模式
};

//函数
void UART0_ISR(void);

void uart0_tx_onebyte(unsigned char cdata);
void uart0_tx_msg(unsigned char *string);
void uart0_tx_len_msg(unsigned char *string,unsigned int len);

#ifdef DBG
void uart0_tx_len_hextoasc(unsigned char *in_buff , unsigned int buff_len);
#endif

void uart0_init (UART0_INFO_TYPE * uart0_info);



#endif
回复

使用道具 举报

5#
ID:939553 发表于 2023-10-23 22:36 | 只看该作者
发现在定义结构体的h和c文件可以使用如,uart0_set(UART0_INFO_TYPE * uart0_info);,但是在别的文件,,如在LCD.c文件lcd_data(UART0_INFO_TYPE * uart0_info);就会报错。什么原因?
回复

使用道具 举报

6#
ID:883242 发表于 2023-10-23 22:42 | 只看该作者
jxcrgt35 发表于 2023-10-23 22:36
发现在定义结构体的h和c文件可以使用如,uart0_set(UART0_INFO_TYPE * uart0_info);,但是在别的文件,,如 ...

只有你自己才能找到原因。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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