打印
[STM32F0]

Modbus 丛机地址修改的问题 ?

[复制链接]
3728|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
参见示例代码:
Modbus 丛机地址可以通过上位机 修改为 需要的值(例如,修改为3)。可是,每次复位后,又变回原来的值(1)了。
MCU为STM32F030,开发环境为:uVision V5。

请教:
这个问题 该如何解决 ?

谢谢!

---------------------------------------------------------------------------
示例代码:
......
unsigned char ModbusAddress ;
......

void modbus_init(void)
{       
    ModbusAddress = 1;
}

int main(void)//master
{       
        ......
        modbus_init();
        ......
       
        while(1)
        {
                ......       
                ModbusAddress = 3 ;
                ......
        }
}

沙发
yiyigirl2014| | 2017-2-10 22:29 | 只看该作者
肯定复位后成1了,你要写到Data Flash里,掉电保留

使用特权

评论回复
评分
参与人数 1威望 +5 收起 理由
JobShare + 5 很给力!
板凳
sanxingnote7| | 2017-2-10 23:12 | 只看该作者
数据能够保存?

使用特权

评论回复
地板
sanxingnote7| | 2017-2-10 23:14 | 只看该作者
你要保存在eeprom或者flash里面。

使用特权

评论回复
评分
参与人数 1威望 +5 收起 理由
JobShare + 5
5
heisexingqisi| | 2017-2-12 21:46 | 只看该作者
你定义的这个变量就是那种断电重启后丢失的数据类型。

使用特权

评论回复
6
airwill| | 2017-2-12 22:07 | 只看该作者
如果使用了 USART 寄存器里的那个地址, 那么你得每次初始化时把地址写进去

使用特权

评论回复
评分
参与人数 1威望 +5 收起 理由
JobShare + 5 很给力!
7
JobShare|  楼主 | 2017-2-13 14:38 | 只看该作者
谢谢各位,学习了

使用特权

评论回复
8
yiyigirl2014| | 2017-2-14 13:44 | 只看该作者
最后问题解决了没,采用了哪种方案?

使用特权

评论回复
9
Stannis| | 2017-2-15 21:54 | 只看该作者
每次初始化时把地址写进去

使用特权

评论回复
10
JobShare|  楼主 | 2017-2-16 08:50 | 只看该作者
yiyigirl2014 发表于 2017-2-14 13:44
最后问题解决了没,采用了哪种方案?

解决了:STM32F,把地址 写在 内部flash,每次开机时,从内部flash读取

使用特权

评论回复
11
yiyigirl2014| | 2017-2-17 20:36 | 只看该作者
JobShare 发表于 2017-2-16 08:50
解决了:STM32F,把地址 写在 内部flash,每次开机时,从内部flash读取

en ,这个方法最好了,省了外部元件的成本,以及系统的硬件复杂度也降低了。

使用特权

评论回复
12
ayrz2010| | 2017-3-8 11:02 | 只看该作者
可以写入数据库或者其他配置文件中!!
看样子楼主只是简单的了解了一些modbus基础知识,但是不够系统和全面。
其实,modbus虽然比较简单,但是如果不注意有很多坑,
特别是寄存器的位数,大小端处理,浮点数,长整数的处理等等。
目前也没有什么合适的书籍系统介绍,帮助理解的。

刚刚搜了一下,只有最近清华出版的《Modbus软件开发实战指南》不错,
应该是Modbus开发方面第一书,很系统很全面,各种代码都是开源的。
内容着重讲述如何快速入门并精通Modbus软件开发技术,
适用于初学Modbus通信协议的读者,可以看看。
item.jd.com/11536091028.html

使用特权

评论回复
评分
参与人数 1威望 +5 收起 理由
JobShare + 5 恩,好书,感谢!好像没有光盘呀 ?!
13
ayrz2010| | 2017-3-9 14:09 | 只看该作者
代码都是开源的,书本上提供了下载方法。
最好学编程是跟着敲一遍代码,从头到尾学习,印象深刻,
完成后,真正变成自己的知识,成为精通Modbus的大师水平。

使用特权

评论回复
评分
参与人数 1威望 +5 收起 理由
JobShare + 5 很给力!
14
Garen2| | 2017-3-9 20:58 | 只看该作者
怎么在断电的瞬间存储数据呢??

使用特权

评论回复
15
ayrz2010| | 2017-3-10 14:09 | 只看该作者
Garen2 发表于 2017-3-9 20:58
怎么在断电的瞬间存储数据呢??

为什么要在断电瞬间保存?
不需要吧,
在配置地址的时候,直接保存到flash,下次启动时,从flash读取即可。

使用特权

评论回复
16
JobShare|  楼主 | 2017-3-12 07:22 | 只看该作者
yiyigirl2014 发表于 2017-2-17 20:36
en ,这个方法最好了,省了外部元件的成本,以及系统的硬件复杂度也降低了。 ...

恩恩,是的,ST有现成的example,稍加modify,OK

使用特权

评论回复
17
JobShare|  楼主 | 2017-3-12 07:25 | 只看该作者
ayrz2010 发表于 2017-3-8 11:02
可以写入数据库或者其他配置文件中!!
看样子楼主只是简单的了解了一些modbus基础知识,但是不够系统和全 ...

谢谢大侠 !

“”“可以写入数据库或者其他配置文件中!!”
没看明白 !Modbus地址写入数据或配置文件中 ?可以 实现Modbus丛机地址的修改 ?

《Modbus软件开发实战指南》,不错,买本 研究下,谢谢 !

使用特权

评论回复
18
JobShare|  楼主 | 2017-3-12 07:25 | 只看该作者
ayrz2010 发表于 2017-3-9 14:09
代码都是开源的,书本上提供了下载方法。
最好学编程是跟着敲一遍代码,从头到尾学习,印象深刻,
完成后, ...

大侠言之有理!

非常感谢!

使用特权

评论回复
19
JobShare|  楼主 | 2017-3-12 19:38 | 只看该作者
ayrz2010 发表于 2017-3-8 11:02
可以写入数据库或者其他配置文件中!!
看样子楼主只是简单的了解了一些modbus基础知识,但是不够系统和全 ...

该书尚处在 预售 阶段!


使用特权

评论回复
20
ayrz2010| | 2017-3-12 21:14 | 只看该作者
JobShare 发表于 2017-3-12 19:38
该书尚处在 预售 阶段!

清华出版社旗舰店有现货吧:
modbus软件开发实战指南

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

298

主题

1418

帖子

5

粉丝