鲸落

鲸落

0个粉丝

35

问答

0

专栏

22

资料

鲸落  发布于  2020-10-21 17:27:43
采纳率 0%
35个问答
2094

ZigBee协议栈 Modbus RTU

处理modbus RTU数据电压 0x00 0x01 0x96 0x40 电流0x00 0x00 0x06 0x73

如下,

//串口接收函数,数据来源于上位机
static void rx0CB(uint8 port,uint8 event)
{
(void)port;
uint8 uart0buf[12];//获取控制命令
unsigned int v_value;
uint16 i_value;
uint8 v[3];
uint8 i[2];

HalUARTRead(0,uart0buf,12);//参数下发

if(uart0buf[0]==0x01&&uart0buf[1]==0x03&&uart0buf[2]==0x08)
{
v_value=uart0buf[4]65536+uart0buf[5]256+uart0buf[6];

 rftx.v_num=v_value/1000;    //3位有效数

 i_value=uart0buf[9]*256+uart0buf[10];
 rftx.i_num=i_value/100;     //2位有效数

 v[0]=rftx.v_num/100+'0';
 v[1]=rftx.v_num%100/10+'0';
 v[2]=rftx.v_num%10+'0';
 HalUARTWrite(1,v,3);


 i[0]=rftx.i_num/10+'0';
 i[1]=rftx.i_num%10+'0';
 HalUARTWrite(1," ",1);
 HalUARTWrite(1,i,2);

}

}

这是结构体
struct RFTX
{
uint8 num;
uint8 relay_state[6];
uint8 Temp[2];
uint8 Vcc[2];
uint16 v_num;
uint8 i_num;
}rftx={1};

这是uint8等定义
typedef signed char int8;
typedef unsigned char uint8; //无符号1字节

typedef signed short int16;
typedef unsigned short uint16;

typedef signed long int32;
typedef unsigned long uint32;

typedef unsigned char bool;

typedef uint8 halDataAlign_t;

不知为何最后电压串口数据并不对,电流是正确的

我来回答
回答0个
时间排序
认可量排序
易百纳技术社区暂无数据
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区