1

我正在尝试在 MPLAB X ide 和 XC8 编译器上将 freemodbus 库从 microchip 改编为微控制器 PIC18F。

我已经尽可能多地纠正了,目前我遇到的问题是关于 sintaxis,

我想知道是否有人可以帮助我解决下一个问题,在我的文件上,我已经完成了与编译器匹配的类型声明,例如 UCHAR = uint8...

在文件mbframe.h

typedef eMBErrorCode( *peMBFrameReceive ) ( UCHAR * pucRcvAddress, UCHAR ** pucFrame, USHORT * pusLength );

我收到错误:

modbus/functions/../includes/mbframe.h:77:错误:(194)“)”预期

正在那里定义参数(pucRcvAddress、pucFrame、pusLength)好吗?

关于 peMBFrameReceive 我认为它在文件mb.c中声明:

static peMBFrameReceive peMBFrameReceiveCur;

它没有错误,而是警告

modbus/mb.c:65:警告:(374)缺少基本类型;int 假定

在 mb.h

    /*! \ingroup modbus
 * \brief Errorcodes used by all function in the protocol stack.
 */
typedef enum {
    MB_ENOERR, /*!< no error. */
    MB_ENOREG, /*!< illegal register address. */
    MB_EINVAL, /*!< illegal argument. */
    MB_EPORTERR, /*!< porting layer error. */
    MB_ENORES, /*!< insufficient resources. */
    MB_EIO, /*!< I/O error. */
    MB_EILLSTATE, /*!< protocol stack in illegal state. */
    MB_ETIMEDOUT /*!< timeout error occurred. */
} eMBErrorCode;

我的理解是“typedef eMBErrorCode(...”是定义,“static ...”是声明。

而且它找不到类型“peMBFrameReceive”,因为它有错误,所以你知道定义有什么问题吗?

谢谢和我最好的问候

4

0 回答 0