你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

Modbus 丛机地址修改的问题 ?

[复制链接]
myfocus-2048857 提问时间:2017-2-10 16:01 /
参见示例代码:
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 ;
                ......
        }
}

收藏 1 评论6 发布时间:2017-2-10 16:01

举报

6个回答
zoomdy 回答时间:2017-2-10 18:18:01
你没有把地址存储在非易失存储啊,存储在RAM中复位后就丢了,你要把地址存储在flash或eeprom中,初始化的时候去读回来。
harvardx 回答时间:2017-2-12 15:49:54
自己安排一个存储到非易失性媒介的 函数
myfocus-2048857 回答时间:2017-2-13 14:45:11
谢谢二位,学习了
lchyx 回答时间:2018-5-4 17:27:40
请问楼主你是这么修改的,我现在也遇到这个问题
Angel_YY 回答时间:2018-5-17 11:09:35
通过IIC或者SPI接口外接EEPROM进行参数保存,启动的时候读取参数。或者把参数保存在MCU内部的Flash中也可以,总之不能只是保存在RAM中,RAM是掉电丢失数据的。其实最常见的方法是通过设置拨码开关实现地址的定义,MCU通过检测拨码开关的状态就知道自己的地址了。每一个设备上用一个四位的拨码开关可以设置16个地址,基本够用了。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

chenjunl 回答时间:2019-4-16 15:30:55
将数据存在FLASH里面就行了

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版