关于 c:AVR 内部 eeprom 读取问题 | 珊瑚贝

AVR Internal eeprom reading issue


我正在使用 atmega8A 的内部 EEPROM,使用 avr\\’s EEPROM 库。我的代码看起来像这样

1
2
3
4
5
6
7
8
9
10
11
12
 #define EEPROM_ADDR    0x0A

int main(void)
{
    _delay_ms(2000);
    LED_Initialize();
    vBlink_Led(100, 2);

    //eeprom_write_byte((uint8_t*)EEPROM_ADDR, 8);
    val = eeprom_read_byte((uint8_t*)EEPROM_ADDR);
    while (1);
}

当我取消注释行 eeprom_write_byte((uint8_t*)EEPROM_ADDR, 8); 然后使用 val = eeprom_read_byte((uint8_t*)EEPROM_ADDR); 读取时,会读取正确的值 8。但是当我对该行进行注释然后重新刷新代码时,值将更改为 255。

有什么建议吗?

注意 – 我已取消选中 avrdudes 中用于擦除闪存和 eeprom 的框

  • 如果那真的是您的代码,那么您如何确定 val 是什么?
  • 你真的确定闪存在编程过程中没有被擦除吗?确保设置了”保留 EEMEM”保险丝。您可能应该在闪烁后使用您的编程工具读出 EEPROM 并验证它是否工作。


通常,当执行”芯片擦除”操作时,EEPROM 也会被清除。

为了防止这种情况,您必须编程(即设置为零)EESAVE 熔丝位,它是高熔丝字节中的第 3 位(请参阅数据表第 29.2 章熔丝位)


来源:https://www.codenong.com/58920212/

微信公众号
手机浏览(小程序)

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_9131.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
0
分享到:
没有账号? 忘记密码?