STM32f4. Запись в flash.

Все о микроконтроллерах: AVR, PIC, STM8, STM32, Arduino, Altera, Xilinx, все что угодно. Этот раздел для всего что клацает байтиками.
Rogers
Сообщения: 13
Откуда: МО, Климовск

Сообщение Rogers » 25 июл 2014, 09:28

Приветствую! Дана задачка: занести в определенную ячейку flash памяти, определенное значение. Вроде все просто, но у меня не работает или я неправильно понимаю как это записать. Подскажите, что я делаю не так.

Код: Выделить всё

#include "stm32f4xx.h"
#include "stm32f4xx_flash.h"

#define DEVICE_ADDRESS 0x08008010
#define DEVICE_SECTOR FLASH_Sector_2

//void WriteDeviceAddress(char* data)
void WriteDeviceAddress(void)
{
   FLASH_Unlock();
   FLASH_EraseSector(FLASH_Sector_2,VoltageRange_3);
   FLASH_ProgramHalfWord(0x08008010,0x5555);
   FLASH_Lock();
}

int main (void)
{
   while(1);
}

Rogers
Сообщения: 13
Откуда: МО, Климовск

Сообщение Rogers » 25 июл 2014, 11:34

Попробовал с другим типом данных и чуть-чуть поправил код => заработало.

Код: Выделить всё

#include "stm32f4xx.h"
#include "stm32f4xx_flash.h"

#define DEVICE_ADDRESS 0x08008010
#define DEVICE_SECTOR FLASH_Sector_2

//void WriteDeviceAddress(char* data)
void WriteDeviceAddress(void)
{
   FLASH_Unlock();
   FLASH_EraseSector(FLASH_Sector_2,VoltageRange_3);
   FLASH_ProgramWord(DEVICE_ADDRESS,0xAAAA8855);
   FLASH_Lock();
}

int main (void)
{      WriteDeviceAddress();
   while(1);
}


Чтение (путем наведения на переменную i):

Код: Выделить всё

#define DEVICE_ADDRESS 0x08008010
#define DEVICE_SECTOR FLASH_Sector_2
#define ADDRESS   0x08008010


uint32_t Read_Flash(uint32_t Data_adr)
{
   return *(uint32_t*) Data_adr;

}
/*
void WriteDeviceAddress(void)
{
   FLASH_Unlock();
   FLASH_EraseSector(FLASH_Sector_2,VoltageRange_3);
   FLASH_ProgramWord(DEVICE_ADDRESS,0xAAAA8855);
   FLASH_Lock();
}*/

int main (void)
{      
   uint32_t i=0;
   //WriteDeviceAddress();
   i = Read_Flash(ADDRESS);
      
   while(1)
    {i++;}
       }

Вернуться в «Микроконтроллеры и ПЛИС»



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей