eParity=MB_PAR_NONE 为无校验,此时硬件端口应设置为无校验方式及两个停止位 ,
eParity=MB_PAR_ODD 为奇 校验 , 此 时硬 件 端口 应 设置 为 奇校 验 方式 及 一个 停 止 位 ,
eParity= MB_PAR_EVEN 为偶校验,此时硬件端口应设置为偶校验方式及一个停止位。函
数返回值务必为 TRUE。
4) BOOL xMBPortSerialPutByte(CHAR ucByte)
此函数的功能为通讯端口发送一字节数据。参数为:ucByte,待发送的数据。应在此
函数中编写发送一字节数据的函数。注意,由于使用的是中断发送,故只需将数据放到发
送寄存器即可。函数返回值务必为 TRUE。
5) BOOL xMBPortSerialGetByte( CHAR * pucByte )
此函数的功能为通讯端口接收一字节数据。参数为:* pucByte,接收到的数据。应在
此函数中编写接收的函数。注意,由于使用的是中断接收,故只需将接收寄存器的值放到*
pucByte 即可。函数返回值务必为 TRUE。
6) void prvvUARTTxReadyISR(void)
发送中断函数。此函数无需修改。只需在用户的发送中断函数中调用此函数即可,同
时,用户应在调用此函数后,清除发送中断标志位。
7) void prvvUARTRxISR(void)
发送中断函数。此函数无需修改。只需在用户的接收中断函数中调用此函数即可,同
时,用户应在调用此函数后,清除接收中断标志位。
portserial.c 中函数的修改:
1) BOOL xMBPortTimersInit( USHORT usTim1Timerout50us )
此函数的功能为初始化超时定时器。参数为:usTim1Timerout50us,50us 的个数。用
户 应 根 据 所 使 用 的 硬 件 初 始 化 超 时 定 时 器 , 使 之 能 产 生 中 断 时 间 为
usTim1Timerout50us*50us 的中断。函数返回值务必为 TRUE。
2) void vMBPortTimersEnable( )
此函数的功能为使能超时定时器。用户需在此函数中清除中断标志位、清零定时器计
数值,并重新使能定时器中断。
3) void vMBPortTimersDisable( )
此函数的功能为关闭超时定时器。用户需在此函数中清零定时器计数值,并关闭定时
器中断。
4) void TIMERExpiredISR( void )
定时器中断函数。此函数无需修改。只需在用户的定时器中断中调用此函数即可,同
时,用户应在调用此函数后清除中断标志位。
2、应用层回函数的修改
在应用层,用户需要定义所需要使用的寄存器,并修改对应的回函数。回函数有如下
几个:
1) eMBErrorCode eMBRegInputCB( UCHAR * pucRegBuffer, USHORT usAddress, USHORT
usNRegs )
输入寄存器回函数。* pucRegBuffer 为要添加到协议中的数据,usAddress 为输入寄存
器地址,usNRegs 为要读取寄存器的个数。用户应根据要访问的寄存器地址 usAddress 将相
应输入寄存器的值按顺序添加到 pucRegBuffer 中。
2) eMBErrorCode eMBRegHoldingCB( UCHAR * pucRegBuffer, USHORT usAddress,
USHORT usNRegs, eMBRegisterMode eMode )
保持寄存器回函数。* pucRegBuffer 为要协议中的数据,usAddress 为输入寄存器地址,
usNRegs 为访问寄存器的个数, eMode 为访问类型(MB_REG_READ 为读保持寄存器,
MB_REG_WRITE 为写保持寄存器)。用户应根据要访问的寄存器地址 usAddress 将相应输
入寄存器的值按顺序添加到 pucRegBuffer 中,或将协议中的数据根据要访问的寄存器地址
usAddress 放到相应保持寄存器中。
3