реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
super_puper
сообщение Jun 5 2013, 02:35
Сообщение #16


Местный
***

Группа: Участник
Сообщений: 222
Регистрация: 14-12-12
Из: новосибирск
Пользователь №: 74 845



где взять файлы eeprom.h и eeprom.c которые описываются в AN2594 Application note EEPROM emulation in STM32F10x microcontrollers странно что дока есть а файлов нет на сайте ст(
Go to the top of the page
 
+Quote Post
Gunner
сообщение Jun 5 2013, 05:14
Сообщение #17


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 23-06-04
Из: Kiev
Пользователь №: 146



QUOTE (super_puper @ Jun 5 2013, 05:35) *
где взять файлы eeprom.h и eeprom.c которые описываются в AN2594 Application note EEPROM emulation in STM32F10x microcontrollers странно что дока есть а файлов нет на сайте ст(

Это?
http://www.st.com/web/en/catalog/tools/PF257846

Go to the top of the page
 
+Quote Post
super_puper
сообщение Jun 5 2013, 06:05
Сообщение #18


Местный
***

Группа: Участник
Сообщений: 222
Регистрация: 14-12-12
Из: новосибирск
Пользователь №: 74 845



оо спасибо большое как вы нашли? я поразному в поиске пробовал слова вводить..
а ничего что у меня stm32f107 а тут EEPROM emulation in STM32F101xx and STM32F103xx microcontrollers ?

Сообщение отредактировал super_puper - Jun 5 2013, 06:09
Go to the top of the page
 
+Quote Post
scifi
сообщение Jun 5 2013, 06:25
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(super_puper @ Jun 5 2013, 10:05) *
а ничего что у меня stm32f107 а тут EEPROM emulation in STM32F101xx and STM32F103xx microcontrollers ?

Ничего. Разница была бы между STM32F1xx и STM32F2xx. А внутри одного семейства флэш устроена одинаково.
Go to the top of the page
 
+Quote Post
nanorobot
сообщение Jun 5 2013, 16:12
Сообщение #20


Местный
***

Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503



Цитата(scifi @ Jun 5 2013, 12:25) *
Ничего. Разница была бы между STM32F1xx и STM32F2xx. А внутри одного семейства флэш устроена одинаково.


Экзампл ихний сперва обескураживает.. Поначалу неясно зачем там VirtAdrTab, и как сохранить более чем 3 переменных. От VirtAdrTab следует отказаться, а в качестве виртуальных адресов использовать VarIdx (требуется минимальная правка eeprom.c) . А в качестве NB_OF_VAR задефайнить sizeof() сохраняемой структуры переменных.
Go to the top of the page
 
+Quote Post
super_puper
сообщение Jun 7 2013, 03:20
Сообщение #21


Местный
***

Группа: Участник
Сообщений: 222
Регистрация: 14-12-12
Из: новосибирск
Пользователь №: 74 845



я не понял как вы переделали я изменил количество переменных до 256 а было 3
#define NumbOfVar ((uint8_t)0xFF)// резервирую 256 переменных в виртуал еепром

и в майне создаю массив виртуальных 256 адресов
for (u8 mm=0;mm<255;mm++){VirtAddVarTab[mm]=mm;}
Go to the top of the page
 
+Quote Post
nanorobot
сообщение Jun 7 2013, 12:36
Сообщение #22


Местный
***

Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503



Цитата(super_puper @ Jun 7 2013, 09:20) *
я не понял как вы переделали я изменил количество переменных до 256 а было 3
#define NumbOfVar ((uint8_t)0xFF)// резервирую 256 переменных в виртуал еепром

и в майне создаю массив виртуальных 256 адресов
for (u8 mm=0;mm<255;mm++){VirtAddVarTab[mm]=mm;}


А чем виртуальные адреса принципиально отличаются от их индекса (mm - у Вас. более того они равны: VirtAddVarTab[mm]=mm ). В примере были адреса из четырех одинаковых цифр, чисто для удобства наблюдения в ихних иллюстрациях, либо под отладчиком. Уберите лишнее промежуточное звено - используйте в качестве адреса сам индекс (mm) - они ведь тоже уникальны: 0..255. Оно, конечно, и так будет работать, только к чему лишние навороты, ровно ничего не дающие..
Go to the top of the page
 
+Quote Post
super_puper
сообщение Jun 10 2013, 04:21
Сообщение #23


Местный
***

Группа: Участник
Сообщений: 222
Регистрация: 14-12-12
Из: новосибирск
Пользователь №: 74 845



а ну да верно.. как это я не заметил.. сейчас пишу без массива напрямую и имя функций укоротил все работает:
EE_Write(60000, 12345);
EE_Read(60000, Read_data);
example=Read_data[0];

непонятно почему они сделали что переменную можно вывести только в первый элемент массива.. а не в переменную например. приходится лишнюю строчку писать : example=Read_data[0];

теперь получается у меня 65535 2х байтных данных могу записать.. итого 131070 байт ..

Сообщение отредактировал super_puper - Jun 10 2013, 04:23
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jun 10 2013, 06:28
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



что-то мне подсказывает что если кто-то почитает книжку по С, то для него сделают вывод куда угодно...
EE_Read(60000, (void *)&example);
EE_Read(60000, (char *)&example);
EE_Read(60000, (int *)&example);

только надо про выравнивание помнить...
Go to the top of the page
 
+Quote Post
super_puper
сообщение Jun 10 2013, 09:06
Сообщение #25


Местный
***

Группа: Участник
Сообщений: 222
Регистрация: 14-12-12
Из: новосибирск
Пользователь №: 74 845



спасибо работает)
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th June 2025 - 03:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.07389 секунд с 7
ELECTRONIX ©2004-2016