0

好吧,这个问题说明了一切。我想做的是,每次我给微控制器加电时,它应该从保存的数据中获取一些数据并使用它。它不应该使用任何外部闪存芯片。如果可能,请提供一些代码片段,以便我可以在 AVR Studio 4 中使用它们。例如,如果我保存 8 个 uint16_t 数据,它应该将这些数据加载到 uint16_t 数组中。

4

2 回答 2

1

如果您不需要以编程方式更新数据,则必须将数据烧录到芯片的程序存储器中,或者如果您想要读写支持,则应使用内置的 EPROM。

Pgmem 示例:

#include <avr/pgmspace.h>

PROGMEM uint16_t data[] = { 0, 1, 2, 3 };

int main()
{
     uint16_t x = pgm_read_word_near(data + 1); // access 2nd element
}
于 2012-06-15T10:35:01.963 回答
0

您需要获取正在使用的部件的数据表。像这样的微控制器通常至少包含一个闪存,有时包含多个闪存组,以允许不同的引导加载程序,同时可以轻松擦除整个闪存而不影响另一个闪存。同样有些有eeprom。这都是内部的,而不是外部的。ESP,因为您说您需要以编程方式保存,这应该可以工作(请记住,闪存磨损是多么容易,除非您需要,否则不要保存)。eeprom 或闪存都将满足在您启动时将信息保存在其中的要求,非易失性。以及能够以编程方式保存它。谷歌搜索会找到一些关于如何做到这一点的示例,除了您显然没有阅读的数据表,以及也包含此信息的应用说明(您应该阅读过)。

数据的读取在数据表中的内存映射中,编写代码来读取这些地址。数据表中也描述了写作(程序员参考手册,用户指南,无论 atmel 怎么称呼它),网上也有很多例子。

于 2012-07-13T21:17:38.153 回答