ville00 发表于 2013-12-3 12:51:15

STM8S的eeprom 烧写问题

刚刚使用STM8S,看了很多资料也没说明白,怎么样直接把数值在初始时就写入到EEPROM?直接定义?EEPROM unsigned char?目前使用的四IAR 1.40

fengye5340 发表于 2013-12-3 14:19:54

RE:STM8S的eeprom 烧写问题

STM8S的内部EEPROM是可以像FLASH那样直接写操作的。
1、先定义要写入的内容,比如你的EEPROM unsigned char EEPROM_BUFF=“内容”;
2、实现一个写子程序;eeprom_write()
3、在主程序初始化的时候开始写入。

ville00 发表于 2013-12-3 14:24:23

回复:STM8S的eeprom 烧写问题

没有什么宏定义直接把数据定义在EEPRO内?

ville00 发表于 2013-12-3 14:42:36

回复:STM8S的eeprom 烧写问题

回复第 2 楼 于2013-12-03 14:19:54发表:
STM8S的内部EEPROM是可以像FLASH那样直接写操作的。
1、先定义要写入的内容,比如你的EEPROM unsigned char EEPROM_BUFF=“内容”;
2、实现一个写子程序;eeprom_write()
3、在主程序初始化的时候开始写入。
 

你好,我刚刚做STM8s,有些还是没明白,按照你说的这样,在EEPROM在运行中更改后,过些时候再启动,不是又会在初始化的时候执行eeprom_write()把本来改过的值冲掉?

fengye5340 发表于 2013-12-3 15:07:22

回复:STM8S的eeprom 烧写问题

回复第 4 楼 于2013-12-03 14:42:36发表:
回复第 2 楼 于2013-12-03 14:19:54发表:
STM8S的内部EEPROM是可以像FLASH那样直接写操作的。
1、先定义要写入的内容,比如你的EEPROM unsigned char EEPROM_BUFF=“内容”;
2、实现一个写子程序;eeprom_write()
3、在主程序初始化的时候开始写入。
 

你好,我刚刚做STM8s,有些还是没明白,按照你说的这样,在EEPROM在运行中更改后,过些时候再启动,不是又会在初始化的时候执行eeprom_write()把本来改过的值冲掉?
 

你设定好初始化内容后,执行一次程序,把固定内容烧写到EEPROM的固定存储区中,默认地址:0x1000开始吧,这个程序只需要执行一次,同时写个读取函数,读出来看看是否成功写入。然后,你再进行正常编程
正常编程的时候,你就需要把原来的EERPM写程序修改了,改成你需要的功能
 
 
 
 

ville00 发表于 2013-12-3 15:15:24

回复:STM8S的eeprom 烧写问题

回复第 5 楼 于2013-12-03 15:07:22发表:
回复第 4 楼 于2013-12-03 14:42:36发表:
回复第 2 楼 于2013-12-03 14:19:54发表:
STM8S的内部EEPROM是可以像FLASH那样直接写操作的。
1、先定义要写入的内容,比如你的EEPROM unsigned char EEPROM_BUFF=“内容”;
2、实现一个写子程序;eeprom_write()
3、在主程序初始化的时候开始写入。
 

你好,我刚刚做STM8s,有些还是没明白,按照你说的这样,在EEPROM在运行中更改后,过些时候再启动,不是又会在初始化的时候执行eeprom_write()把本来改过的值冲掉?
 

你设定好初始化内容后,执行一次程序,把固定内容烧写到EEPROM的固定存储区中,默认地址:0x1000开始吧,这个程序只需要执行一次,同时写个读取函数,读出来看看是否成功写入。然后,你再进行正常编程
正常编程的时候,你就需要把原来的EERPM写程序修改了,改成你需要的功能
 哦,如果是大批量生产的时候也要烧写两次程序?
 
 
 
 

fengye5340 发表于 2013-12-3 15:50:49

回复:STM8S的eeprom 烧写问题

回复第 6 楼 于2013-12-03 15:15:24发表:
回复第 5 楼 于2013-12-03 15:07:22发表:
回复第 4 楼 于2013-12-03 14:42:36发表:
回复第 2 楼 于2013-12-03 14:19:54发表:
STM8S的内部EEPROM是可以像FLASH那样直接写操作的。
1、先定义要写入的内容,比如你的EEPROM unsigned char EEPROM_BUFF=“内容”;
2、实现一个写子程序;eeprom_write()
3、在主程序初始化的时候开始写入。
 

你好,我刚刚做STM8s,有些还是没明白,按照你说的这样,在EEPROM在运行中更改后,过些时候再启动,不是又会在初始化的时候执行eeprom_write()把本来改过的值冲掉?
 

你设定好初始化内容后,执行一次程序,把固定内容烧写到EEPROM的固定存储区中,默认地址:0x1000开始吧,这个程序只需要执行一次,同时写个读取函数,读出来看看是否成功写入。然后,你再进行正常编程
正常编程的时候,你就需要把原来的EERPM写程序修改了,改成你需要的功能
 哦,如果是大批量生产的时候也要烧写两次程序?
 当然,这个也可以在一个程序中实现,需要作判断处理,初始化后,先判判EEPROM存储区有无固定存储内容,若无,则执行写操作,无有,则进行校验,和固定内容比较或写入某个值操作。
 
 
 

 

ville00 发表于 2013-12-3 15:59:05

回复:STM8S的eeprom 烧写问题

回复第 7 楼 于2013-12-03 15:50:49发表:
回复第 6 楼 于2013-12-03 15:15:24发表:
回复第 5 楼 于2013-12-03 15:07:22发表:
回复第 4 楼 于2013-12-03 14:42:36发表:
回复第 2 楼 于2013-12-03 14:19:54发表:
STM8S的内部EEPROM是可以像FLASH那样直接写操作的。
1、先定义要写入的内容,比如你的EEPROM unsigned char EEPROM_BUFF=“内容”;
2、实现一个写子程序;eeprom_write()
3、在主程序初始化的时候开始写入。
 

你好,我刚刚做STM8s,有些还是没明白,按照你说的这样,在EEPROM在运行中更改后,过些时候再启动,不是又会在初始化的时候执行eeprom_write()把本来改过的值冲掉?
 

你设定好初始化内容后,执行一次程序,把固定内容烧写到EEPROM的固定存储区中,默认地址:0x1000开始吧,这个程序只需要执行一次,同时写个读取函数,读出来看看是否成功写入。然后,你再进行正常编程
正常编程的时候,你就需要把原来的EERPM写程序修改了,改成你需要的功能
 哦,如果是大批量生产的时候也要烧写两次程序?
 当然,这个也可以在一个程序中实现,需要作判断处理,初始化后,先判判EEPROM存储区有无固定存储内容,若无,则执行写操作,无有,则进行校验,和固定内容比较或写入某个值操作。
 
 
 

 很感谢你,以后有问题还会咨询,谢谢

 

wkuang 发表于 2013-12-3 22:02:46

RE:STM8S的eeprom 烧写问题

EEPROM 不是系统地址,因此无法初始化时即把数据写入EEPROM,只能指定一个地址,使用EEPROM的读写函数使用IIC总线把数据写进去
页: [1]
查看完整版本: STM8S的eeprom 烧写问题