我正在尝试在 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”,因为它有错误,所以你知道定义有什么问题吗?
谢谢和我最好的问候