<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      stm32永久保存一些參數

      如果需要在程序中永久保存一些參數,可以利用STM32的Flash存儲器作為自定義存儲器區域。在保存參數時,可以將參數按照一定的編碼格式打包成一個字節數組(例如采用結構體表示),然后按照一定的規則寫入Flash存儲器。

      1、定義參數結構體

      定義一個結構體存放要保存的參數。例如,假設要保存兩個參數,一個浮點數和一個整型數,可以定義如下結構體:

      // 定義保存參數的結構體
      typedef struct {
          float param1; // 浮點型參數
          int param2;   // 整型參數
      } Parameters;
      

       

      2、設置Flash存儲器地址

      在程序中設置Flash存儲器的起始地址。可以定義一個常量來表示Flash存儲器的起始地址,例如:

      #define FLASH_BASE_ADDR 0x08004000 // 要保存的地址從0x08004000開始
      

       

      3、計算存儲器地址

      在寫入參數前,計算參數要保存的地址。可以定義一個變量(或常量)表示參數在Flash中的偏移量,例如:

      #define PARAMS_OFFSET 0x40 // 參數在Flash中的偏移量為64字節
      

      然后根據偏移量和存儲器起始地址計算要保存的地址,例如:

      uint32_t flash_addr = FLASH_BASE_ADDR + PARAMS_OFFSET; // 計算要保存的地址
      

        

      4、擦除Flash存儲器

      在寫入參數前,需要先將存儲器的相關頁進行擦除操作。可以借助HAL庫函數來完成操作,例如:

      FLASH_EraseInitTypeDef erase_config;
      erase_config.TypeErase = FLASH_TYPEERASE_PAGES;
      erase_config.PageAddress = FLASH_BASE_ADDR;
      erase_config.NbPages = 1;
      uint32_t page_error = 0;
      HAL_FLASHEx_Erase(&erase_config, &page_error);
      

       

      5、寫入Flash存儲器

      在進行擦除操作后,可以使用 HAL_FLASH_Program() 函數將參數寫入Flash存儲器中,在寫入前需要先解鎖Flash存儲器。例如:

      // 解鎖Flash存儲器
      HAL_FLASH_Unlock();
      
      // 寫入參數
      Parameters params_to_save = {.param1 = 3.14, .param2 = 123};
      HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, flash_addr, *(uint32_t *)&params_to_save);
      flash_addr += sizeof(Parameters);
      
      // 再寫入參數
      Parameters another_params_to_save = {.param1 = 1.3, .param2 = 456};
      HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, flash_addr, *(uint32_t *)&another_params_to_save);
      
      // 鎖定Flash存儲器
      HAL_FLASH_Lock();
      

      在上述代碼中,首先解鎖Flash存儲器;然后定義要保存的參數,使用 HAL_FLASH_Program() 函數將參數寫入Flash存儲器中,每次寫入一個字。寫入后更新 flash_addr 變量,準備寫入下一個參數。最后再次鎖定Flash存儲器。

      在讀取Flash存儲器中的參數時,也可以采用類似的方法,計算出參數在Flash中的地址,取出來的數據需要按照存儲時的編碼格式進行解碼。

       

      posted @ 2023-06-07 13:24  穎風船  閱讀(1413)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 一区二区三区精品自拍视频| 日本少妇xxx做受| 中国凸偷窥xxxx自由视频| 亚洲精品精华液一区二区| 东京热人妻无码一区二区av| 久久久www成人免费精品| 亚洲中文字幕一区二区| 野外做受三级视频| 国产丰满麻豆videossexhd| 特级毛片a片久久久久久| 日本熟妇XXXX潮喷视频| 亚洲精品国产免费av| 国产一区国产二区在线视频| 韩国无码AV片午夜福利| 亚洲色成人一区二区三区| 久久久久四虎精品免费入口| 国产日韩另类综合11页| 亚洲va久久久噜噜噜久久狠狠| 亚洲色在线v中文字幕| 国产女同疯狂作爱系列| 人人人澡人人肉久久精品| 9l精品人妻中文字幕色| 国产v亚洲v天堂a无码| 国产成人夜色高潮福利app| 成人福利国产午夜AV免费不卡在线 | 无码人妻精品一区二区三区蜜桃| 国产情侣激情在线对白| 亚洲国产欧美一区二区好看电影| 免费国产拍久久受拍久久| 午夜一区欧美二区高清三区| 国产亚洲人成网站在线观看| 粉嫩在线一区二区三区视频| 99久久久国产精品免费蜜臀| 国内精品人妻一区二区三区 | 九九热精品视频免费在线| 熟女性饥渴一区二区三区| 国产精品中出一区二区三区| 欧美熟妇性XXXX欧美熟人多毛| 中文字幕人妻不卡精品| 久久老熟妇精品免费观看| 性做久久久久久久|