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

来源:JSY-KJ(健思研科技)

发布时间:2026-04-03


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

 

 

 


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

UART功能函数

UART发送

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

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

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

UART接收

1.uart接收数据功能函数

UART中断发送接收流程

uart发送单个

uart发送一串

uart发送数组

uart接收数据

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

接着写发送数据函数

获取发送的数据

设置要发送的数据长度

设置复制函数

设置接收缓冲区

设置接收函数

最后就是主函数的调用

打印结果

1.结果乱码

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



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

 

 

 



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

解决方案:时钟配置

设置频率

时钟初始化

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

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


三、总结  

 

 


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


0
0
收藏
纠错

免责声明

  • 1、本文内容版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系感算商城(service@gansuan.com),我方将及时处理。
  • 2、本文的引用仅供读者交流学习使用,不涉及商业目的。
  • 3、本文内容仅代表作者观点,感算商城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。
  • 4、如需转载本方拥有版权的文章,请联系感算商城(service@gansuan.com)注明“转载原因”。未经允许私自转载感算商城将保留追究其法律责任的权利。

最新消息通知

样品申请

  • 品牌
  • 申请数量

  • 商品分类
  • 单价
    -
  • 封装
  • 库存
  • 供应商
  • 小计
    -
  • 1.多样品申请请先加入样品清单
  • 2.样品申请数量有限,超过限额可能不能获批
纠错反馈 关闭
感谢您对感算商城的支持,帮助我们共同提升商品信息的准确性。
如果您发现商品介绍、规格参数、规格书、商品图片等信息有误或不完善,欢迎指出。
感谢您对感算商城的支持,帮助我们共同提升网站内容信息的准确性。
如果您发现网站内容信息有误或不完善,欢迎指出。
纠错内容

上传附件
最多可添加3个文件,支持多种格式,每个大小不超过20MB
*详细描述
0/200