1 eMBInit----->
A 宏的使用:
/*! \brief If Modbus RTU support is enabled. */
#define MB_RTU_ENABLED ( 1 )
#if MB_RTU_ENABLED > 0
code ;
#endif
#if defined(MODBUS_MASTER_USE_CONTROL_PIN)
modbus_master_control_init();
#endif
B 函数指针的用法
首先H文件中定义新的类型 : typedef void ( *pvMBFrameStart ) ( void );
其次在 C中 定义 pvMBFrameStart 类型的一个指针:
static pvMBFrameStart pvMBFrameStartCur;
最后C文件中 给pvMBFrameStartCur 这个指针赋值:
pvMBFrameStartCur = eMBRTUStart;
执行函数: eMBRTUStart() 这是个函数
D 枚举使用
在.C中定义枚举类型,再定义枚举变量eMBState ,并且赋 初值STATE_NOT_INITIALIZED,:
static enum
{
STATE_ENABLED,
STATE_DISABLED,
STATE_NOT_INITIALIZED
} eMBState = STATE_NOT_INITIALIZED;
if( eMBState != STATE_ENABLED )
{
return MB_EILLSTATE;
}
E 接口的写法
1 中断中调用:
USART1_IRQHandler()
{
prvvUARTRxISR();//接收中断
}
2 这个是函数的原型
static void prvvUARTRxISR( void ) //删去前面的static,方便在串口中断使用
{
pxMBFrameCBByteReceived( ); //这个其实是一个函数指针。
}
3.就是在.C中定义的 是定义了一个指向函数的指针变量---->pxMBFrameCBByteReceived :
BOOL( *pxMBFrameCBByteReceived ) ( void );
4. 在 初始化时给函数指针赋值,然后,就是最后执行的 函数是 xMBRTUReceiveFSM()
pxMBFrameCBByteReceived = xMBRTUReceiveFSM;