資源簡介
完整的工程代碼。利用CH376芯片電路,升級stm32程序,代碼已通過驗證。
代碼片段和文件信息
/*
?*??文件名??:???a_flash.c
?*??描述????:???Flash編程文件?擦除寫入驗證
?*??版本????:???V1.00
?*??日期????:???2014-05-29?09:24:46
?*??參考????:???ST官方庫3.0.0
?*/
#include?“a_flash.h“
/*****************************數據定義*****************************/
#if?FLASH_PROG_TEST_EN??????????????????????????????????????????????????????????????????????//如果使能Flash編程
uint32_t?WriteBuf[FLASH_PAGE_SIZE?/?4];?????????????????????????????????????????????????????//Flash寫入緩沖區數組
#endif??//#if?FLASH_PROG_TEST_EN
/*****************************函數定義***************************/
/*
?*??函數名??:???Flash_ProgTest
?*??描述????:???Flash編程測試
?*??輸入????:???無
?*??輸出????:???FuncOK??---?成功
?*??調用????:???外部調用
?*/
#if?FLASH_PROG_TEST_EN??????????????????????????????????????????????????????????????????????//如果使能Flash編程
FStat?Flash_ProgTest(void)
{
????FStat?stat;
//????stat?=?Buf_LinearFill32(?WriteBuf?FLASH_PAGE_SIZE?);???????????????????????????????????//按32bit線性填充緩沖區
????FLASH_STAT_CHK(?stat?);?????????????????????????????????????????????????????????????????//檢查擦除結果
????
????stat?=?Flash_Write(?FLASH_START_ADDR?WriteBuf?sizeof(WriteBuf)?);?????????????????????//Flash寫入
????FLASH_STAT_CHK(?stat?);?????????????????????????????????????????????????????????????????//檢查擦除結果
????
????return?FuncOK;????
}
#endif??//#if?FLASH_PROG_TEST_EN
/*
?*??函數名??:???Flash_Write
?*??描述????:???Flash編程寫入
?*??輸入????:???uint32_t?Addr???---?寫入首地址
?*??????????????void?*WriteBuf??---?緩沖區首地址
?*??????????????uint32_t?Len????---?寫入長度
?*??輸出????:???FStat???????????---?FuncOK成功
?*??調用????:???外部調用
?*/
FStat?Flash_Write(uint32_t?Addr?void?*WriteBuf?uint32_t?Len)
{
????FLASH_Status?stat;
????uint32_t?*buf;
????uint32_t?i;
????
????if(?FuncOK?!=?Flash_Erase(?Addr?Len?)?)????????????????????????????????????????????????//擦除?判斷執行結果
????{
????????return?FuncErr;?????????????????????????????????????????????????????????????????????//失敗返回
????}
????
????buf?=?(uint32_t?*)WriteBuf;?????????????????????????????????????????????????????????????//緩沖區首地址
????for(?i=0;?i ????{
????????stat?=?FLASH_ProgramWord(?Addr?+?i?*?4?buf[i]?);???????????????????????????????????//Flash寫入
????????FLASH_STAT_CHK(?stat?);?????????????????????????????????????????????????????????????//檢查擦除結果
????}
????
????for(?i=0;?i ????{
????????if(?*((uint32_t?*)(Addr?+?i?*?4))?!=?buf[i]?)???????????????????????????????????????//判斷寫入內容是否正確
????????{
????????????return?FuncErr;?????????????????????????????????????????????????????????????????//失敗返回
????????}
????}
????
????return?FuncOK;??????????????????????????????????????????????????????????????????????????//返回成功
}
/*
?*??函數名??:???Flash_Erase
?*??描述????:???Flash擦除?如果首地址不是頁對齊?首頁不擦除
?*??輸入????:???uint32_t?Addr???---?擦除首地址
?*??????????????uint3
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????732??2015-10-30?13:57??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\aa
?????文件????????167??2009-12-19?10:22??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376.plg
?????文件?????????21??2009-12-19?15:17??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376.txt
?????文件?????150610??2015-11-02?18:00??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376.uvgui.suojinyu
????.......?????71851??2018-07-13?18:22??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376.uvguix.JQR2
?????文件??????25332??2015-11-02?11:00??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376.uvopt
????.......?????26276??2018-07-13?17:45??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376.uvoptx
?????文件??????22742??2015-10-30?13:57??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376.uvproj.saved_uv4
????.......?????23427??2018-07-13?17:45??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376.uvprojx
?????文件?????216242??2009-06-30?00:00??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376EVT\EVT\CH376EVT.PDF
?????文件?????180150??2009-07-10?00:00??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376EVT\EVT\CH376SCH.PDF
?????文件??????39785??2008-10-28?00:00??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376EVT\EVT\EXAM\CH376INC.H
?????文件??????39837??2008-10-28?00:00??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376EVT\EVT\EXAM\CH376INC.INC
?????文件????????637??2008-10-29?00:00??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376EVT\EVT\EXAM\DEBUG.C
?????文件????????535??2008-10-29?00:00??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376EVT\EVT\EXAM\DEBUG.H
?????文件???????2409??2008-10-29?00:00??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376EVT\EVT\EXAM\EXAM0\CH376.C
?????文件???????1705??2008-10-29?00:00??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376EVT\EVT\EXAM\EXAM0\CH376.H
?????文件??????13732??2008-10-29?00:00??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376EVT\EVT\EXAM\EXAM0\CH376.HEX
?????文件??????12595??2008-10-29?00:00??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376EVT\EVT\EXAM\EXAM0\DEVICE.C
?????文件???????5629??2008-10-29?00:00??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376EVT\EVT\EXAM\EXAM0\HOST.C
?????文件????????175??2008-10-29?00:00??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376EVT\EVT\EXAM\EXAM0\MK51.BAT
?????文件??????10138??2008-10-29?00:00??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376EVT\EVT\EXAM\EXAM1\CH376HFT.C
?????文件??????13871??2008-10-29?00:00??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376EVT\EVT\EXAM\EXAM1\CH376HFT.HEX
?????文件???????5519??2008-10-29?00:00??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376EVT\EVT\EXAM\EXAM10\CH376HFT.C
?????文件???????9592??2008-10-29?00:00??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376EVT\EVT\EXAM\EXAM10\CH376HFT.HEX
?????文件???????7457??2008-10-29?00:00??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376EVT\EVT\EXAM\EXAM11\CH376HFT.C
?????文件??????17496??2009-07-14?00:00??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376EVT\EVT\EXAM\EXAM11\CH376HFT.HEX
?????文件???????6720??2008-10-29?00:00??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376EVT\EVT\EXAM\EXAM12\CH376HFT.C
?????文件??????10220??2008-10-29?00:00??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376EVT\EVT\EXAM\EXAM12\CH376HFT.HEX
?????文件???????8938??2008-10-29?00:00??使用U盤升級stm32程序\使用U盤更新STM32程序\Bootloader程序\CH376EVT\EVT\EXAM\EXAM13\CH376HFT.C
............此處省略541個文件信息
評論
共有 條評論