硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3612|回复: 6
收起左侧

[有问必答] 请问一下Modbus RTC偶校验程序应该如何改

[复制链接]

1

主题

2

回帖

5

积分

新手上路

积分
5
发表于 2018-1-16 22:56:06 | 显示全部楼层 |阅读模式
看了 开发板_MODBUS教程说明,才知道标准协议应该是偶校验,没有校验要二个停止位可是再看例程 配置的是 9600 N 8.1。。为什么没有按说明来写程序呢,,很多PLC确实是偶校验多

二个停止位怎么操作,,有些单片要可以配,我现在用的是Stm32f030.好像没有二个停止位的配置,不知道怎么操作

如果用偶校验,配置里改一下偶校验,那接收到的数据那里怎么去判断这个校验,,有没有例程看看
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
发表于 2018-1-17 00:19:19 | 显示全部楼层
STM32的奇偶校验配置比较简单,硬件自动支持的,发送时自动生成奇偶校验位,接收时进行奇偶校验检查,检查寄存器USART_SR寄存器的PE位即可。你用MODBUS检查不检查都没有关系,因为已经有CRC校验,足够了。
另外停止位支持几个,看手册,比如F4,F1,支持0.5,1,1.5或者2个。

下面是配置8位数据,一位校验位,偶校验。
QQ截图20180117001352.jpg



回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
发表于 2018-1-17 00:21:05 | 显示全部楼层
剩下找个PLC倒腾下,就调试通了,很好弄的,后面有什么问题继续交流。
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 2018-1-18 09:06:58 | 显示全部楼层
eric2013 发表于 2018-1-17 00:19
STM32的奇偶校验配置比较简单,硬件自动支持的,发送时自动生成奇偶校验位,接收时进行奇偶校验检查,检查 ...

例程里,我直接改成偶校验,通信不上,接收不到数据了。。你试试
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
发表于 2018-1-18 10:07:25 | 显示全部楼层
zhuyi2576 发表于 2018-1-18 09:06
例程里,我直接改成偶校验,通信不上,接收不到数据了。。你试试

我这里两块开发板测试,偶校验没问题啊,就是我前面说的方法。

强烈建议你先研究下Modbus是怎通讯的,再来交流。
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 2018-1-19 09:41:48 | 显示全部楼层
本帖最后由 zhuyi2576 于 2018-1-19 09:45 编辑
eric2013 发表于 2018-1-18 10:07
我这里两块开发板测试,偶校验没问题啊,就是我前面说的方法。

强烈建议你先研究下Modbus是怎通讯的, ...

恩,
弄好了,我设置了奇偶校验,但是数据位没有改成9位,还是8位,所以没通信上,不仔细,唉

我玩了10年的modbus,都是无校验的

例程写的挺好,整个框架比我的确实好太多了,向你们学习,现在尽量按这个模式来,就是有点太占空间了,现在用的16K的小容量,有点吃不消了,尽量在精简代码,

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
发表于 2018-1-20 00:04:26 | 显示全部楼层
zhuyi2576 发表于 2018-1-19 09:41
恩,
弄好了,我设置了奇偶校验,但是数据位没有改成9位,还是8位,所以没通信上,不仔细,唉


共同学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-11 13:08 , Processed in 0.238733 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表