HAL을 사용한 STM32 플래시 메모리 쓰기 가이드

HAL을 사용한 STM32 플래시 메모리 쓰기 가이드

STM32 플래시 메모리를 하드웨어 추상화 계층(HAL)과 함께 사용하기로 선택한 경우 이 가이드는 간단한 마이크로컨트롤러 프로그래밍에 필요한 필수 단계를 제공합니다. 아래에 설명된 예를 따르면 하드웨어 추상화 계층(HAL)을 설정하는 것은 매우 쉽습니다.

HAL을 사용하여 STM32 플래시 메모리에 어떻게 쓸 수 있나요?

1. 플래시 메모리를 쓰기 준비하세요

  1. 필요한 헤더 파일을 통합합니다 . .을 사용합니다 #include "stm32f4xx_hal.h".
  2. 플래시 메모리 잠금 해제 : 쓰기를 하기 전에 플래시 메모리의 잠금을 해제해야 합니다. 다음을 실행하세요 HAL_FLASH_Unlock();.
  3. 플래시 메모리 지우기 : 데이터를 쓰려면 사용하려는 특정 플래시 메모리 섹터를 지웁니다. 이는 HAL_FLASHEx_Erase 함수를 사용하여 수행됩니다.
    • FLASH_EraseInitTypeDef EraseInitStruct; uint32_t SectorError; EraseInitStruct.TypeErase = FLASH_TYPEERASE_SECTORS; EraseInitStruct.Sector = FLASH_SECTOR_2; // Define the sector for erasure EraseInitStruct.NbSectors = 1; EraseInitStruct.VoltageRange = FLASH_VOLTAGE_RANGE_3; if (HAL_FLASHEx_Erase(&EraseInitStruct, &SectorError)! = HAL_OK) { // Error handling }

2. 플래시 메모리에 데이터 쓰기

  1. HAL_FLASH_Program 함수를 사용하여 플래시 메모리에 데이터를 입력합니다. 데이터는 바이트, 반단어, 단어 또는 더블 단어 등 다양한 형태로 작성될 수 있습니다.
    • uint32_t Address = 0x08008000; // Initial address in flash memory uint32_t Data = 0x12345678; // Information to be saved if (HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, Address, Data)! = HAL_OK) { // Handle the error }
  2. 플래시 메모리 다시 잠그기 : 데이터 쓰기를 완료한 후에는 의도치 않은 덮어쓰기를 방지하기 위해 플래시 메모리를 다시 잠그는 것이 필수적입니다 HAL_FLASH_Lock();.

HAL을 사용한 STM32 플래시 메모리의 예제 코드

모든 절차를 통합한 포괄적인 예는 다음과 같습니다.


#include "stm32f4xx_hal.h"

void Write_Flash(uint32_t Address, uint32_t Data) {
// 플래시 잠금 해제
HAL_FLASH_Unlock();

// 플래시 섹터 지우기
FLASH_EraseInitTypeDef EraseInitStruct;
uint32_t SectorError;

EraseInitStruct.TypeErase = FLASH_TYPEERASE_SECTORS;
EraseInitStruct.Sector = FLASH_SECTOR_2;
EraseInitStruct.NbSectors = 1;
EraseInitStruct.VoltageRange = FLASH_VOLTAGE_RANGE_3;

if (HAL_FLASHEx_Erase(&EraseInitStruct, &SectorError)! = HAL_OK) {
// 오류 처리
}

// 플래시 메모리를 프로그래밍합니다
if (HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, Address, Data)! = HAL_OK) {
// 오류 처리
}

// 플래시 잠금
HAL_FLASH_Lock();
}

int main(void) {
HAL_Init();
Write_Flash(0x08008000, 0x12345678);
while (1) {
// 메인 루프
}
}

이 그림은 HAL 기능이 있는 STM32 마이크로컨트롤러의 플래시 메모리를 잠금 해제, 지우기, 쓰기, 그리고 이후 잠그는 방법을 완벽하게 보여줍니다. 이 가이드가 귀하의 STM32 플래시 메모리 프로그래밍에 도움이 되었기를 바랍니다.

문제가 발생하면 HAL INITIALIZATION FAILED 오류를 해결하는 방법에 대한 튜토리얼을 참조하세요.

질문이나 피드백이 있으시면 아래에 댓글을 남겨주세요.

출처 및 이미지

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다