你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
STVD版本,用的是4.3.3,在写EEPROM时候老出现无效参数而死机的现象
[复制链接]
z18497
提问时间:2013-12-22 08:47 /
请问大家STM8用的是STVD的哪个版本,我用的是4.3.3,在写EEPROM时候老出现无效参数而死机的现象
赞
0
收藏
0
评论
6
分享
发布时间:2013-12-22 08:47
举报
请先
登录
后回复
6个回答
勒布朗
回答时间:2013-12-24 20:41:15
a0a.1 0b0c
RE:STVD版本,用的是4.3.3,在写EEPROM时候老出现无效参数而死机的现象
确定你的IIC交换数据正常?确定写的地址没有超出范围
赞
0
评论
回复
支持
反对
有缘于你
回答时间:2013-12-25 18:44:24
a0a.1 0b0c
RE:STVD版本,用的是4.3.3,在写EEPROM时候老出现无效参数而死机的现象
先找找有没有好使的例程试试
赞
0
评论
回复
支持
反对
fengye5340
回答时间:2013-12-26 09:28:07
a0a.1 0b0c
RE:STVD版本,用的是4.3.3,在写EEPROM时候老出现无效参数而死机的现象
自己用程序实现EEPROM模块的读写,那样更稳定一些
赞
0
评论
回复
支持
反对
noley_li
回答时间:2013-12-26 09:49:42
a0a.1 0b0c
RE:STVD版本,用的是4.3.3,在写EEPROM时候老出现无效参数而死机的现象
是用内部的EEPROM码?IAR的例程,可以参考一下.
// 定义EEPROM:EEP_LEN:数据长度, EEP_STARTADDR:起始地址(0x4000)
__no_init __near unsigned char EEP_Data[EEP_LEN]@EEP_STARTADDR;
// EEPROM解锁
void EEP_vUnlock(void)
{
FLASH_DUKR = EEP_MASS1; //锁1密钥
FLASH_DUKR = EEP_MASS2; //锁2密钥
while ( !(FLASH_IAPSR&0x08) ) asm("NOP"); //等待解密就绪
}
// 读数据
void EEP_vRead( unsigned char *p )
{
char j;
for ( j = 0; j < EEP_LEN; j++, p++) {
*p = EEP_Data[j];
p++;
}
}
// 写数据
void EEP_vWrite(unsigned char *p)
{
unsigned char j;
_di_(); // 擦写的时候须关闭中断
EEP_vUnlock();
for ( j = 0; j < EEP_LEN; j++, p++ ) {
EEP_Data[j] = *p;
}
// 短延时等待
j = 20;
while ( --j ) {
_nop_();_nop_();_nop_();_nop_();_nop_();
}
FLASH_IAPSR &= 0xF7 //关闭eep
_ei_(); // 中断回复
}
赞
0
评论
回复
支持
反对
wkuang
回答时间:2013-12-31 22:15:13
a0a.1 0b0c
RE:STVD版本,用的是4.3.3,在写EEPROM时候老出现无效参数而死机的现象
1、如果是死机了,首先检查写入的地址有没有越界,用Assert语句跳转到异常处理循环中,导出死机堆栈,看看死机的位置,或者访问无效地址;
2、做个函数轨迹跟踪,看看死机的函数和位置;再排查代码。
如果使用库老是死机,建议自己模拟总线写一个函数试试。
赞
0
评论
回复
支持
反对
温柔的武士刀
回答时间:2013-12-31 22:25:56
a0a.1 0b0c
RE:STVD版本,用的是4.3.3,在写EEPROM时候老出现无效参数而死机的现象
楼主用例程试一下吧
赞
0
评论
回复
支持
反对
所属标签
相似问题
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
RE:STVD版本,用的是4.3.3,在写EEPROM时候老出现无效参数而死机的现象
RE:STVD版本,用的是4.3.3,在写EEPROM时候老出现无效参数而死机的现象
RE:STVD版本,用的是4.3.3,在写EEPROM时候老出现无效参数而死机的现象
RE:STVD版本,用的是4.3.3,在写EEPROM时候老出现无效参数而死机的现象
// 定义EEPROM:EEP_LEN:数据长度, EEP_STARTADDR:起始地址(0x4000)
__no_init __near unsigned char EEP_Data[EEP_LEN]@EEP_STARTADDR;
// EEPROM解锁
void EEP_vUnlock(void)
{
FLASH_DUKR = EEP_MASS1; //锁1密钥
FLASH_DUKR = EEP_MASS2; //锁2密钥
while ( !(FLASH_IAPSR&0x08) ) asm("NOP"); //等待解密就绪
}
// 读数据
void EEP_vRead( unsigned char *p )
{
char j;
for ( j = 0; j < EEP_LEN; j++, p++) {
*p = EEP_Data[j];
p++;
}
}
// 写数据
void EEP_vWrite(unsigned char *p)
{
unsigned char j;
_di_(); // 擦写的时候须关闭中断
EEP_vUnlock();
for ( j = 0; j < EEP_LEN; j++, p++ ) {
EEP_Data[j] = *p;
}
// 短延时等待
j = 20;
while ( --j ) {
_nop_();_nop_();_nop_();_nop_();_nop_();
}
FLASH_IAPSR &= 0xF7 //关闭eep
_ei_(); // 中断回复
}
RE:STVD版本,用的是4.3.3,在写EEPROM时候老出现无效参数而死机的现象
2、做个函数轨迹跟踪,看看死机的函数和位置;再排查代码。
如果使用库老是死机,建议自己模拟总线写一个函数试试。
RE:STVD版本,用的是4.3.3,在写EEPROM时候老出现无效参数而死机的现象