STM32F103C8T6 내부 FLASH 읽기/쓰기
1845 단어 단편기
u16 people_id[50]={1,2,3} ; /* 50 */
u16 people_clock_t[50] ; /* */
u16 people_num = 2; /* */
#define DEBUG
#define FLASH_SIZE 64 // MCU FLASH ( K)
#if FLASH_SIZE<256
#define SECTOR_SIZE 1024 //
#else
#define SECTOR_SIZE 2048 //
#endif
FLASH_Status Debug;
//Flash 8 bit
void FLASH_WriteData(uint32_t startAddress,uint16_t *writeData,uint16_t countToWrite)
{
uint16_t i;
uint32_t offsetAddress; //
uint32_t sectorPosition; //
uint32_t sectorStartAddress;
if(startAddress < FLASH_BASE||((startAddress+countToWrite)>=(FLASH_BASE+1024*FLASH_SIZE)))
{
return ;//
}
//
FLASH_Unlock();
// 0X08000000
offsetAddress = startAddress-FLASH_BASE;
//
sectorPosition = offsetAddress/SECTOR_SIZE;
//
sectorStartAddress=sectorPosition * SECTOR_SIZE + FLASH_BASE;
FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);
//
Debug=FLASH_ErasePage(sectorStartAddress);
#ifdef DEBUG
if(Debug != FLASH_COMPLETE)
printf("
");
#endif
for(i=0;i
main
void main(void)
{
write_to_flash();
read_from_flash();
while(1)
{
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 출력 포인터 변수 주소(16진수)텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.