Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
05.07.2013, 17:41
|
|
Частый гость
Регистрация: 04.12.2012
Сообщений: 38
Сказал спасибо: 25
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Запись во FLASH STM32F4
Всем доброго дня)Программеры подскажите, что я не так делаю при записи во FLASH(STM32F4) ?
Я уже и с библиотеками и просто на CMSIS пробовал-толку нет((((((((((((
С использованием "stm32f4xx_flash.h" :
PHP код:
|
FLASH_Unlock();
FLASH_EraseSector(FLASH_Sector_2,VoltageRange_4);
while ((FLASH-›SR & FLASH_SR_BSY) != 0 );
FLASH_ProgramHalfWord(0x08008000,4);
FLASH_Lock();
|
ну и на CMSIS :
PHP код:
|
void FLASH_WRITE_16BIT(uint32_t Address,uint16_t data)
{
FLASH-›CR &= CR_PSIZE_MASK;
FLASH-›CR |= FLASH_PSIZE_HALF_WORD;
FLASH-›CR |= FLASH_CR_PG;
//Запись данных по адресу Address
*(__IO uint16_t*)Address = data;
while ((FLASH-›SR & FLASH_SR_BSY) != 0 );
FLASH-›CR &= (~FLASH_CR_PG);
}
|
|
|
|
|
05.07.2013, 18:37
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
|
Re: Запись во FLASH STM32F4
В исходники, хоть иногда, заглядывать надобно!
Код:
|
FLASH_EraseSector(FLASH_Sector_2,VoltageRange_4); |
Цитата:
|
* @param VoltageRange: The device voltage range which defines the erase parallelism.
* This parameter can be one of the following values:
* @arg VoltageRange_1: when the device voltage range is 1.8V to 2.1V,
* the operation will be done by byte (8-bit)
* @arg VoltageRange_2: when the device voltage range is 2.1V to 2.7V,
* the operation will be done by half word (16-bit)
* @arg VoltageRange_3: when the device voltage range is 2.7V to 3.6V,
* the operation will be done by word (32-bit)
* @arg VoltageRange_4: when the device voltage range is 2.7V to 3.6V + External Vpp,
* the operation will be done by double word (64-bit)
|
У вас есть External Vpp?
Цитата:
|
To use VPP, an external high-voltage supply (between 8 and 9 V) must be applied to the VPP
pad. The external supply must be able to sustain this voltage range even if the DC
consumption exceeds 10 mA. It is advised to limit the use of VPP to initial programming on
the factory line. The VPP supply must not be applied for more than an hour, otherwise the
Flash memory might be damaged.
|
|
|
|
|
06.07.2013, 01:13
|
|
Частый гость
Регистрация: 04.12.2012
Сообщений: 38
Сказал спасибо: 25
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Запись во FLASH STM32F4
Сообщение от nahimovv
|
Код:
|
FLASH_EraseSector(FLASH_Sector_2,VoltageRange_4); |
У вас есть External Vpp?
|
Согласен, спасибо за замечание! но этим мою проблему не решить(
|
|
|
|
08.07.2013, 09:47
|
|
Частый гость
Регистрация: 04.12.2012
Сообщений: 38
Сказал спасибо: 25
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Запись во FLASH STM32F4
Неужели никто не работал с flash(
|
|
|
|
08.07.2013, 16:37
|
|
Прописка
Регистрация: 09.02.2011
Сообщений: 164
Сказал спасибо: 1
Сказали Спасибо 27 раз(а) в 22 сообщении(ях)
|
Re: Запись во FLASH STM32F4
Похоже не разблокирован флеш
#define FLASH_KEY1 ((uint32_t)0x45670123)
#define FLASH_KEY2 ((uint32_t)0xCDEF89AB)
void FlashErasePage(const void *SavedDomain)
{
/* Authorize the FPEC Access */
FLASH-›KEYR = FLASH_KEY1;
FLASH-›KEYR = FLASH_KEY2;
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:23.
|
|