亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

STM3210XX中讀寫Flash的操作

發布時間:2020-07-17 19:47:54 來源:網絡 閱讀:752 作者:dawn0919 欄目:編程語言

  這個星期開始接觸單片機基于STM32的編程,C語言只是在學校時用過,20多年過去了,重新撿起來。

  編程工具是Keil uVision5。

  這個星期完成了單片機之間的串口通訊,有些設置需要在機器斷電的情況下保存,這時要將設置寫入Flash,需要的時候再讀取出來。經過一天的努力,測試成功了。

  實際的代碼:

uint32_t ReadFromFlashOneWord(uint32_t Addr){
//從Flash中讀取一個字(半個字的讀取)
uint32_t HData,LData;//定義高位、低位兩個數據
HData=(__IO uint16_t)Addr;
LData=(__IO uint16_t)(Addr+2);
return (HData<<16)+LData;
}

uint16_t ReadFromFlashHalfWord(uint32_t Addr){
//讀取32位字節數據后返回16位數據
return (__IO uint16_t)Addr;
}

void ReadFromFlashMultipleWord(uint32_t StartAddr,uint16_t ReadData,uint16_t Count){
uint16_t i;
for(i=0;i<Count;i++){
ReadData[i]=ReadFromFlashHalfWord(StartAddr+i
2);
}
}

void WriteToFlashOneWord(uint32_t StartAddr,uint32_t WriteData){
//向Flash指定的地址寫入一個字
HAL_FLASH_Unlock();
//擦除
FLASH_EraseInitTypeDef EraseInitStrut;
EraseInitStrut.TypeErase=FLASH_TYPEERASE_PAGES;
EraseInitStrut.PageAddress=StartAddr;
EraseInitStrut.NbPages=1;
//設置頁面錯誤
uint32_t PageError=0;
//擦除
HAL_FLASHEx_Erase(&EraseInitStrut,&PageError);
//寫入Flash
HAL_FLASH_Program(TYPEPROGRAM_WORD,StartAddr,WriteData);
//鎖定Flash
HAL_FLASH_Lock();
}
  讀寫測試:

  uint32_t TestData=0x12345678;
  uint32_t TestAddr=0x0800F000;                 //寫入Flash
  WriteToFlashOneWord(TestAddr,TestData);
  HAL_Delay (100);

  //uint16_t OutData;
  uint8_t HData1,HData2,LData1,LData2;

  HData1= (uint8_t)(TestData>>24);
  HData2= (uint8_t)(TestData>>16);
  LData1= (uint8_t)(TestData>>8);
  LData2=(uint8_t)TestData;

  //OutData=ReadFromFlashHalfWord(TestAddr);
  Send_Buffer[61]=HData1;
  Send_Buffer[62]=HData2;
  Send_Buffer[63]=LData1;
  Send_Buffer[64]=LData2;
HAL_UART_Transmit(&hlpuart1,Send_Buffer,70,10);
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东丰县| 闵行区| 桐庐县| 巫溪县| 泽库县| 小金县| 郓城县| 黄山市| 舒兰市| 加查县| 万年县| 桃园市| 汝阳县| 昌吉市| 双城市| 德保县| 宽城| 舞钢市| SHOW| 沭阳县| 芜湖县| 皋兰县| 镇江市| 漳州市| 蓝山县| 定日县| 白银市| 赫章县| 苍梧县| 龙口市| 遂昌县| 太仆寺旗| 滁州市| 新营市| 马山县| 堆龙德庆县| 曲水县| 黔江区| 伊金霍洛旗| 铜梁县| 辽宁省|