Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 27.10.2016, 17:40  
swat24
Гражданин KAZUS.RU
 
Регистрация: 16.03.2009
Адрес: Украина, Харьков
Сообщений: 762
Сказал спасибо: 108
Сказали Спасибо 67 раз(а) в 67 сообщении(ях)
swat24 на пути к лучшему
По умолчанию Нужна помощь - STM32F205 сохранение во флеш

Добрый день.
Имеется устройство с бутлоадером на МК STM32F205RBT6, бутлоадер лежит в 0 секторе, настройки программы хранятся в первом, с адреса (0x08004000). Сама программа находится с адреса 0x08010000.
Пытаюсь записать в память следующим кодом:
Код:
        FLASH_Unlock();
	FLASH_EraseSector(FLASH_Sector_1, VoltageRange_3);
	FLASH_Lock();

	FLASH_Unlock();	
	FLASH_ProgramWord(0x08004000,screw.pauseTime);
	FLASH_ProgramWord(0x08004000+(4*1),screw.workTime)  ;
	FLASH_ProgramWord(0x08004000+(4*2),feeder.pauseTim  e);
	FLASH_ProgramWord(0x08004000+(4*3),feeder.workTime  );
	FLASH_ProgramWord(0x08004000+(4*4),pumpCO.gisterez  is);
	FLASH_ProgramWord(0x08004000+(4*5),pumpCO.temperat  ureOn);
	FLASH_ProgramWord(0x08004000+(4*6),pumpGVS.gistere  zis);
	FLASH_ProgramWord(0x08004000+(4*7),pumpGVS.tempera  tureOn);
	
	FLASH_Lock();
Но в память ничего не сохраняется, даже не пытается записаться. В чем может быть проблема? Подскажите на что обратить внимание? Что может влиять на запись во флеш? Питание контроллера 3.3в

В примере от СТ нашел что еще сбрасывают флаги:

Код:
  /* Clear pending flags (if any) */  
FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | 
FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR|FLASH_FLAG_PGSERR);
а так все это же:
Код:
/* Unlock the Flash to enable the flash control register access *************/ 
  FLASH_Unlock();
    
  /* Erase the user Flash area
    (area defined by FLASH_USER_START_ADDR and FLASH_USER_END_ADDR) ***********/

  /* Clear pending flags (if any) */  
  FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | 
                  FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR|FLASH_FLAG_PGSERR);

  /* Get the number of the start and end sectors */
  StartSector = GetSector(FLASH_USER_START_ADDR);
  EndSector = GetSector(FLASH_USER_END_ADDR);

  for (SectorCounter = StartSector; SectorCounter ‹ EndSector; SectorCounter += 8)
  {
    /* Device voltage range supposed to be [2.7V to 3.6V], the operation will
       be done by word */ 
    if (FLASH_EraseSector(SectorCounter, VoltageRange_3) != FLASH_COMPLETE)
    { 
      /* Error occurred while sector erase. 
         User can add here some code to deal with this error  */
      while (1)
      {
      }
    }
  }

  /* Program the user Flash area word by word
    (area defined by FLASH_USER_START_ADDR and FLASH_USER_END_ADDR) ***********/

  Address = FLASH_USER_START_ADDR;

  while (Address ‹ FLASH_USER_END_ADDR)
  {
    if (FLASH_ProgramWord(Address, DATA_32) == FLASH_COMPLETE)
    {
      Address = Address + 4;
    }
    else
    { 
      /* Error occurred while writing data in Flash memory. 
         User can add here some code to deal with this error */
      while (1)
      {
      }
    }
  }

  /* Lock the Flash to disable the flash control register access (recommended
     to protect the FLASH memory against possible unwanted operation) *********/
  FLASH_Lock();
Реклама:

Последний раз редактировалось swat24; 27.10.2016 в 20:23.
swat24 вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь по созданию схемы umkaasp TTL и CMOS логика 38 21.01.2015 13:28
Люди, у кого есть АС MICROLAB H 600 или H 500,пожалуйста отзовитесь, нужна помощь Lesha2222 Аудиотехника 1 30.01.2014 21:44
Hantek 3064A ремонт (нужна помощь) Kulibin1234 Измерительное оборудование 0 21.10.2013 14:16
Нужна помощь!!! ШД -> UNL2003A -> PIC16F84A xxxmonejall Микроконтроллеры, АЦП, память и т.д 10 04.08.2009 00:02
Нужна помощь профессионала! romstal Аудиотехника 7 23.02.2009 15:19


Часовой пояс GMT +4, время: 19:43.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot