STVD版本,用的是4.3.3,在写EEPROM时候老出现无效参数而死机的现象
请问大家STM8用的是STVD的哪个版本,我用的是4.3.3,在写EEPROM时候老出现无效参数而死机的现象RE:STVD版本,用的是4.3.3,在写EEPROM时候老出现无效参数而死机的现象
确定你的IIC交换数据正常?确定写的地址没有超出范围RE:STVD版本,用的是4.3.3,在写EEPROM时候老出现无效参数而死机的现象
先找找有没有好使的例程试试RE:STVD版本,用的是4.3.3,在写EEPROM时候老出现无效参数而死机的现象
自己用程序实现EEPROM模块的读写,那样更稳定一些:)RE:STVD版本,用的是4.3.3,在写EEPROM时候老出现无效参数而死机的现象
是用内部的EEPROM码?IAR的例程,可以参考一下.// 定义EEPROM:EEP_LEN:数据长度, EEP_STARTADDR:起始地址(0x4000)
__no_init __near unsigned char EEP_Data@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;
p++;
}
}
// 写数据
void EEP_vWrite(unsigned char *p)
{
unsigned char j;
_di_(); // 擦写的时候须关闭中断
EEP_vUnlock();
for ( j = 0; j < EEP_LEN; j++, p++ ) {
EEP_Data = *p;
}
// 短延时等待
j = 20;
while ( --j ) {
_nop_();_nop_();_nop_();_nop_();_nop_();
}
FLASH_IAPSR &= 0xF7 //关闭eep
_ei_(); // 中断回复
}
RE:STVD版本,用的是4.3.3,在写EEPROM时候老出现无效参数而死机的现象
1、如果是死机了,首先检查写入的地址有没有越界,用Assert语句跳转到异常处理循环中,导出死机堆栈,看看死机的位置,或者访问无效地址;2、做个函数轨迹跟踪,看看死机的函数和位置;再排查代码。
如果使用库老是死机,建议自己模拟总线写一个函数试试。
RE:STVD版本,用的是4.3.3,在写EEPROM时候老出现无效参数而死机的现象
楼主用例程试一下吧
页:
[1]