91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 563.87 KB
    文件類型: .rar
    金幣: 1
    下載: 0 次
    發布日期: 2025-01-01
  • 語言: 其他
  • 標簽: 開發技術??C??

資源簡介

stm32f030 IAP在線升級參考代碼,原創

資源截圖

代碼片段和文件信息

#include?“stmflash.h“


//用戶根據自己的需要設置
#define?STM32_FLASH_SIZE??32????????????//所選STM32的FLASH容量大小(單位為K)
#define?STM32_FLASH_WREN??1


static?uint16?iHAL_STMFLASH_ReadHalfWord(uint32?faddr);
static?void?iHAL_STMFLASH_Write_NoCheck(uint32?WriteAddr?const?uint16?*pBuffer?uint16?NumToWrite);


//讀取指定地址的半字(16位數據)
//faddr:讀地址(此地址必須為2的倍數!!)
//返回值:對應數據.
static?uint16?iHAL_STMFLASH_ReadHalfWord(uint32?faddr)
{
????return?*(vu16*)faddr;
}

#if?STM32_FLASH_WREN????//如果使能了寫???
//不檢查的寫入
//WriteAddr:起始地址
//pBuffer:數據指針
//NumToWrite:半字(16位)數
static?void?iHAL_STMFLASH_Write_NoCheck(uint32?WriteAddr?const?uint16?*pBuffer?uint16?NumToWrite)
{
????uint16?i;
????for(i?=?0;?i?????{
????????FLASH_ProgramHalfWord(WriteAddr?pBuffer[i]);
????????WriteAddr?+=?2;?//地址增加2.
????}
}

#if?STM32_FLASH_SIZE<256
#define?STM_SECTOR_SIZE?1024?//字節
#else
#define?STM_SECTOR_SIZE?2048
#endif
//uint16?STMFLASH_BUF[STM_SECTOR_SIZE?/?2];?//最多是2K字節
uint8?STMFLASH_BUF[STM_SECTOR_SIZE];

#warning?“沒有掉電保護機制,如果該page內有代碼,就會出問題!“
//從指定地址開始寫入指定長度的數據
//WriteAddr:起始地址(此地址必須為2的倍數!!)
//pBuffer:數據指針
//NumToWrite:半字(16位)數(就是要寫入的16位數據的個數.)
void?JTHAL_STMFLASH_Write(uint32?WriteAddr?const?uint16?*pBuffer?uint16?NumToWrite)
{
????uint32?secpos;????//扇區地址
????uint16?secoff;????//扇區內偏移地址(16位字計算)
????uint16?secremain;?//扇區內剩余地址(16位字計算)
????uint16?i;
????uint32?offaddr;???//去掉0X08000000后的地址
????uint16?*pBuff?=?(uint16?*)STMFLASH_BUF;
????
????if(WriteAddr?se?||?(WriteAddr?>=?(JTSTM32_FLASH_base?+?1024?*?STM32_FLASH_SIZE)))
????????return;?//非法地址
????????
????FLASH_Unlock();?????????????????????//解鎖
????offaddr?=?WriteAddr?-?JTSTM32_FLASH_base;?//實際偏移地址.
????secpos?=?offaddr?/?STM_SECTOR_SIZE;?????//扇區地址??0~127?for?STM32F103RBT6
????secoff?=?(offaddr?%?STM_SECTOR_SIZE)?/?2;?//在扇區內的偏移(2個字節為基本單位.)
????secremain?=?STM_SECTOR_SIZE?/?2?-?secoff;?//扇區剩余空間大小
????if(NumToWrite?<=?secremain)
????????secremain?=?NumToWrite;?//不大于該扇區范圍
????????
????while(1)
????{
????????JTHAL_STMFLASH_Read(secpos?*?STM_SECTOR_SIZE?+?JTSTM32_FLASH_base?pBuff?STM_SECTOR_SIZE?/?2);?//讀出整個扇區的內容
????????for(i?=?0;?i?????????{
????????????if(pBuff[secoff?+?i]?!=?0XFFFF)break;?//需要擦除
????????}
????????if(i?????????{
????????????FLASH_ErasePage(secpos?*?STM_SECTOR_SIZE?+?JTSTM32_FLASH_base);?//擦除這個扇區
????????????for(i?=?0;?i?????????????{
????????????????pBuff[i?+?secoff]?=?pBuffer[i];
????????????}
????????????iHAL_STMFLASH_Write_NoCheck(secpos?*?STM_SECTOR_SIZE?+?JTSTM32_FLASH_base?pBuff?STM_SECTOR_SIZE?/?2);?//寫入整個扇區
????????}
????????else
????????????iHAL_STMFLASH_Write_NoCheck(WriteAddr?pBuffer?secremain);?//寫已經擦除了的直接寫入扇區剩余區間.

????????if(NumToWrite?==?secremain)
????????????break;?//寫入結束了
????????else//寫入未結束
????????{
????????????secpos++;???????????????//扇區地址增1
????????????secoff?=?0;?????????????//偏移位置為0
????????????pBuffer?+=?

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????1120??2017-02-12?19:11??IAP_STM32F030\CORE\arm_common_tables.h

?????文件?????240326??2017-02-12?19:11??IAP_STM32F030\CORE\arm_math.h

?????文件??????31948??2017-02-12?19:11??IAP_STM32F030\CORE\core_cm0.h

?????文件??????15691??2017-02-12?19:11??IAP_STM32F030\CORE\core_cmFunc.h

?????文件??????16108??2017-02-12?19:11??IAP_STM32F030\CORE\core_cmInstr.h

?????文件??????10644??2017-02-12?19:11??IAP_STM32F030\CORE\startup_stm32f0xx.s

?????文件???????1067??2017-04-20?22:11??IAP_STM32F030\HAL\jt_typedef.h

?????文件???????4078??2017-04-20?10:31??IAP_STM32F030\HAL\stmflash.c

?????文件????????750??2017-04-20?10:31??IAP_STM32F030\HAL\stmflash.h

????.......????139562??2017-04-20?22:12??IAP_STM32F030\Project\IAP_Stm32f030.uvguix.Administrator

????.......?????18075??2017-04-20?22:10??IAP_STM32F030\Project\IAP_Stm32f030.uvoptx

????.......?????17983??2017-04-20?22:12??IAP_STM32F030\Project\IAP_Stm32f030.uvprojx

?????文件??????31035??2017-04-20?22:12??IAP_STM32F030\Project\startup_stm32f0xx.lst

?????文件??????38887??2017-04-20?22:12??IAP_STM32F030\Project\STM32F030.map

?????文件??????19520??2017-02-12?19:11??IAP_STM32F030\STM32F03x_FWLib\inc\stm32f0xx_adc.h

?????文件??????12353??2017-02-12?19:11??IAP_STM32F030\STM32F03x_FWLib\inc\stm32f0xx_cec.h

?????文件??????10385??2017-02-12?19:11??IAP_STM32F030\STM32F03x_FWLib\inc\stm32f0xx_comp.h

?????文件???????3680??2017-02-12?19:11??IAP_STM32F030\STM32F03x_FWLib\inc\stm32f0xx_crc.h

?????文件???????7138??2017-02-12?19:11??IAP_STM32F030\STM32F03x_FWLib\inc\stm32f0xx_dac.h

?????文件???????3892??2017-02-12?19:11??IAP_STM32F030\STM32F03x_FWLib\inc\stm32f0xx_dbgmcu.h

?????文件??????14207??2017-02-12?19:11??IAP_STM32F030\STM32F03x_FWLib\inc\stm32f0xx_dma.h

?????文件???????8617??2017-02-12?19:11??IAP_STM32F030\STM32F03x_FWLib\inc\stm32f0xx_exti.h

?????文件??????10957??2017-02-12?19:11??IAP_STM32F030\STM32F03x_FWLib\inc\stm32f0xx_flash.h

?????文件??????13174??2017-02-12?19:11??IAP_STM32F030\STM32F03x_FWLib\inc\stm32f0xx_gpio.h

?????文件??????18136??2017-02-12?19:11??IAP_STM32F030\STM32F03x_FWLib\inc\stm32f0xx_i2c.h

?????文件???????4531??2017-02-12?19:11??IAP_STM32F030\STM32F03x_FWLib\inc\stm32f0xx_iwdg.h

?????文件???????4413??2017-02-12?19:11??IAP_STM32F030\STM32F03x_FWLib\inc\stm32f0xx_misc.h

?????文件???????5909??2017-02-12?19:11??IAP_STM32F030\STM32F03x_FWLib\inc\stm32f0xx_pwr.h

?????文件??????20615??2017-02-12?19:11??IAP_STM32F030\STM32F03x_FWLib\inc\stm32f0xx_rcc.h

?????文件??????35039??2017-02-12?19:11??IAP_STM32F030\STM32F03x_FWLib\inc\stm32f0xx_rtc.h

............此處省略124個文件信息

評論

共有 條評論