STM32F103C8T6 + CUBEMX + FREEMODBUS
4路继电器控制,功能:05功能码单路开,单路关。0F全开全关。04读取输入寄存器的值。
测试结果
报文格式
FREEMODBUS协议栈1,5,15,功能码回调函数代码片段
/// CMD1、5、15
eMBErrorCode eMBRegCoilsCB( UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNCoils, eMBRegisterMode eMode )
{
USHORT usRegIndex = usAddress - 1;
USHORT usCoilGroups = ((usNCoils - 1) / 8 + 1);
UCHAR ucStatus = 0;
UCHAR ucBits = 0;
UCHAR ucDisp = 0;
//HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET);
// 非法检测
if((usRegIndex + usNCoils) > REG_COILS_SI