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

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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版