健思研

深圳市健思研科技有限公司Shenzhen Jiansiyan Technology Co., Ltd.
咨询电话400-001-9882

热门关键词:电测仪表价格充电桩价格汽车充电桩多少钱一个电能计量仪器仪表电能计量仪器仪表价格

当前位置首页 » 健思研新闻中心 » 新闻资讯 » 企业新闻 » 家庭能源网关开发历程③:UART数据收发实测!打通JSY-MK-163T模块数据通道

家庭能源网关开发历程③:UART数据收发实测!打通JSY-MK-163T模块数据通道

2026-01-29 10:23:11

上一期我们完成了JSY-MK-163串口通讯配置流程。由于上期没有打印结果,本期我们就来实现项目主控MCU华大HC32F005的UART中断发送和接收数据的结果打印。首先,我们先看看用到UART的那些功能函数。

一、核心函数:UART收发功能实现

要实现与JSY-MK-163T的数据互通,首先需要编写对应的收发功能函数,支持字节、字符串、数组发送(适配Modbus协议指令格式),以及数据接收存储,具体如下:

UART功能函数

UART发送

1.以查询的方式发送数据 

1_01

2. 以中断的方式发送数据 

1_02

注:本期我们讲的是中断发送,所以等下我们调用的是该方式发送数据。

UART接收

1. uart接收数据功能函数 

1_03

UART中断发送接收流程

uart发送单个 

1_04.1

uart发送一串 

1_04.2

uart发送数组 

1_05

uart接收数据 

1_05

首先,我们先定义一个结构,用于发送和接收多个数据准备。 

1_06

接着写发送数据函数 

1_07

获取发送的数据 

1_08

设置要发送的数据长度 

1_09

设置复制函数 

1_11

设置接收缓冲区

1_12

设置接收函数

1_13


最后就是主函数的调用 

1_14

打印结果

1.结果乱码

根据上面的流程,我们明明可以实现了串口中断的发送和接收数据,但是会发现接收到的数据是乱的,这是怎么回事? 

2.1

、避坑指南:解决数据乱码,确保与模块通讯正常

很多小伙伴按照上述代码配置后,会发现接收的JSY-MK-163T模块数据是乱码,这不是代码写错了,也不是模块的问题,而是系统时钟配置缺失HC32F005的UART波特率依赖系统时钟,时钟频率不对,波特率就会偏差,导致与JSY-MK-163T模块的4800bps波特率不匹配,进而出现乱码。

解决方案:时钟配置 

1_15

设置频率 

1_16

时钟初始化 

1_17

最后,我们在主函数调用就可以解决乱码的问题,如下图是配置时钟之后的打印结果: 

2.2

总结

配置时钟后,通过串口助手模拟JSY-MK-163T模块发送数据,或直接与真实的JSY-MK-163T模块对接,网关能正常接收并转发数据,数据无乱码、无丢失,证明UART中断收发功能完全实现,与JSY-MK-163T模块的通讯通道彻底打通!

到这里,数据传输的基础就打牢了~ 下一期我们将进入项目核心环节:利用Modbus协议读取JSY-MK-163T模块的电能数据(电压、电流、功率等),并进行解析,真正实现家庭用电的精准监测!关注不迷路,手把手带你搞定智能网关开发~

更多推荐产品 Recommended products

四大企业优势为您的电能智控产品保驾护航
置 顶