关于STM32 MODBUS协议之 RTU 中数据读请求成功,而响应无数据(记录)
时间:2019-01-25
本文章向大家介绍关于STM32 MODBUS协议之 RTU 中数据读请求成功,而响应无数据(记录),主要包括关于STM32 MODBUS协议之 RTU 中数据读请求成功,而响应无数据(记录)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
问题描述
void mb_send_readdeal()
{
mb_mode(true);
mb_read_single(mbp1);
mb_mode(false);
delay_ms(3);
mb_readsingle(&mbp1);
delay_ms(100);
}
如上一段程序中所述,
mb_mode(true);是485的发送模式。mb_mode(false);是485的接受模式。
mb_read_single(mbp1)是向ModBus从机,发送读取数据的相应的读请求。
mb_readsingle(&mbp3); 是从机的响应的接受解析函数。(用过DMA通道)
当我在进行这段程序的调试时,从机响应应的接受数组一直无法得到正确的数组。从程序逻辑上,而没有问题。
解决办法
void mb_send_readdeal()
{
mb_mode(true);
mb_read_single(mbp1);
mb_mode(false);
delay_ms(1000);
mb_readsingle(&mbp1);
delay_ms(100);
}
在485接受模式打开后,增加延迟即可解决。
因为在485接受模式打开后,STM32DMA接收到从机的响应数据,再经进行从缓冲区到接受数组的过程。其需要相应的处理时间。
- IE的BHO通过IHTMLDocument2接口获得网页源代码
- 【C++】小心使用文件读写模式:回车('r') 换行('n')问题的一次纠结经历
- 【C】用C语言提取bmp图片像素,并进行K-means聚类分析——容易遇到的问题
- SEED缓冲区溢出实验笔记
- HTTP严格安全传输(HTTP Strict Transport Security, HSTS)chromuim实现源码分析(一)
- Linux下ls命令显示符号链接权限为777的探索
- Django form表单
- Django ORM那些相关操作
- 使用mitmproxy嗅探双向认证ssl链接——嗅探AWS IoT SDK的mqtts
- Django中ORM介绍和字段及其参数
- 几个实现分页的方法
- 如何识别IDA反汇编中动态链接库中的函数
- Kali Linux安装TL-WN821N USB无线网卡驱动(make失败)
- Cookie、Session登陆验证相关介绍和用法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法