You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
2.1 KiB
50 lines
2.1 KiB
#ifndef __BSP_MB_HOST_H__
|
|
#define __BSP_MB_HOST_H__
|
|
|
|
/* 包含头文件 ----------------------------------------------------------------*/
|
|
|
|
/* 类型定义 ------------------------------------------------------------------*/
|
|
|
|
/* 宏定义 --------------------------------------------------------------------*/
|
|
#define MB_SLAVEADDR 0x0001 //从机地址
|
|
#define MB_REG_ADDR 0 //寄存器地址(离散、线圈)
|
|
#define HoldingReg 0 //保持寄存器
|
|
#define InputRegReg 0x0020 //输入寄存器
|
|
#include "../../BASE/Inc/BSP/bsp_include.h"
|
|
#include "../../BASE/Inc/BSP/bsp_UART.h"
|
|
|
|
/* 扩展变量 ------------------------------------------------------------------*/
|
|
typedef struct
|
|
{
|
|
|
|
uint16_t DATA_01H;
|
|
uint16_t DATA_02H;
|
|
uint16_t DATA_03H;
|
|
|
|
uint16_t DATA_04H;
|
|
uint16_t DATA_05H;
|
|
uint16_t DATA_06H;
|
|
uint8_t DATA_10H[64];
|
|
|
|
}MB_REG_DATA;
|
|
|
|
//;
|
|
extern uint8_t MB_rx_flag;
|
|
extern uint16_t Read_Reg_Num;
|
|
|
|
/* 函数声明 ------------------------------------------------------------------*/
|
|
uint16_t MB_CRC16(uint8_t *pushMsg, uint16_t usDataLen);
|
|
void MB_ReadCoil(uint8_t* Tx_Buf,uint8_t* TxCount_t,uint8_t _addr, uint16_t _reg, uint16_t _num);
|
|
void MB_WriteCoil(uint8_t* Tx_Buf,uint8_t* TxCount_t,uint8_t _addr, uint16_t _reg, uint16_t _sta);
|
|
void MB_ReadInput(uint8_t* Tx_Buf,uint8_t* TxCount_t,uint8_t _addr, uint16_t _reg, uint16_t _num);
|
|
void MB_ReadHoldingReg(uint8_t* Tx_Buf,uint8_t* TxCount_t,uint8_t _addr, uint16_t _reg, uint16_t _num);
|
|
void MB_ReadInputReg(uint8_t* Tx_Buf,uint8_t* TxCount_t,uint8_t _addr, uint16_t _reg, uint16_t _num);
|
|
void MB_WriteHoldingReg(uint8_t* Tx_Buf,uint8_t* TxCount_t,uint8_t _addr, uint16_t _reg, uint16_t _data);
|
|
//void MB_WriteNumHoldingReg(uint8_t* Tx_Buf,uint8_t* TxCount_t,uint8_t _addr, uint16_t _reg, uint16_t _num,uint8_t *_databuf)
|
|
void MB_WriteNumHoldingReg(uint8_t* Tx_Buf,uint8_t* TxCount_t,uint8_t _addr, uint16_t _reg, uint16_t _num,uint8_t *_databuf);
|
|
void MB_WriteNumCoil(uint8_t *Tx_Buf, uint8_t *TxCount_t, uint8_t _addr,
|
|
uint16_t _reg, uint16_t _num, uint8_t *_databuf);
|
|
|
|
#endif /* __BSP_MB_HOST_H__ */
|
|
|
|
/******************* (C) COPYRIGHT 2015-2020 硬石嵌入式开发团队 *****END OF FILE****/
|
|
|