U盘升级stm32程序,使用CH376芯片电路


完整的工程代码。利用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程序CH376EVTEVTCH376EVT.PDF

     文件     180150  2009-07-10 00:00  使用U盘升级stm32程序使用U盘更新STM32程序Bootloader程序CH376EVTEVTCH376SCH.PDF

     文件      39785  2008-10-28 00:00  使用U盘升级stm32程序使用U盘更新STM32程序Bootloader程序CH376EVTEVTEXAMCH376INC.H

     文件      39837  2008-10-28 00:00  使用U盘升级stm32程序使用U盘更新STM32程序Bootloader程序CH376EVTEVTEXAMCH376INC.INC

     文件        637  2008-10-29 00:00  使用U盘升级stm32程序使用U盘更新STM32程序Bootloader程序CH376EVTEVTEXAMDEBUG.C

     文件        535  2008-10-29 00:00  使用U盘升级stm32程序使用U盘更新STM32程序Bootloader程序CH376EVTEVTEXAMDEBUG.H

     文件       2409  2008-10-29 00:00  使用U盘升级stm32程序使用U盘更新STM32程序Bootloader程序CH376EVTEVTEXAMEXAM0CH376.C

     文件       1705  2008-10-29 00:00  使用U盘升级stm32程序使用U盘更新STM32程序Bootloader程序CH376EVTEVTEXAMEXAM0CH376.H

     文件      13732  2008-10-29 00:00  使用U盘升级stm32程序使用U盘更新STM32程序Bootloader程序CH376EVTEVTEXAMEXAM0CH376.HEX

     文件      12595  2008-10-29 00:00  使用U盘升级stm32程序使用U盘更新STM32程序Bootloader程序CH376EVTEVTEXAMEXAM0DEVICE.C

     文件       5629  2008-10-29 00:00  使用U盘升级stm32程序使用U盘更新STM32程序Bootloader程序CH376EVTEVTEXAMEXAM0HOST.C

     文件        175  2008-10-29 00:00  使用U盘升级stm32程序使用U盘更新STM32程序Bootloader程序CH376EVTEVTEXAMEXAM0MK51.BAT

     文件      10138  2008-10-29 00:00  使用U盘升级stm32程序使用U盘更新STM32程序Bootloader程序CH376EVTEVTEXAMEXAM1CH376HFT.C

     文件      13871  2008-10-29 00:00  使用U盘升级stm32程序使用U盘更新STM32程序Bootloader程序CH376EVTEVTEXAMEXAM1CH376HFT.HEX

     文件       5519  2008-10-29 00:00  使用U盘升级stm32程序使用U盘更新STM32程序Bootloader程序CH376EVTEVTEXAMEXAM10CH376HFT.C

     文件       9592  2008-10-29 00:00  使用U盘升级stm32程序使用U盘更新STM32程序Bootloader程序CH376EVTEVTEXAMEXAM10CH376HFT.HEX

     文件       7457  2008-10-29 00:00  使用U盘升级stm32程序使用U盘更新STM32程序Bootloader程序CH376EVTEVTEXAMEXAM11CH376HFT.C

     文件      17496  2009-07-14 00:00  使用U盘升级stm32程序使用U盘更新STM32程序Bootloader程序CH376EVTEVTEXAMEXAM11CH376HFT.HEX

     文件       6720  2008-10-29 00:00  使用U盘升级stm32程序使用U盘更新STM32程序Bootloader程序CH376EVTEVTEXAMEXAM12CH376HFT.C

     文件      10220  2008-10-29 00:00  使用U盘升级stm32程序使用U盘更新STM32程序Bootloader程序CH376EVTEVTEXAMEXAM12CH376HFT.HEX

     文件       8938  2008-10-29 00:00  使用U盘升级stm32程序使用U盘更新STM32程序Bootloader程序CH376EVTEVTEXAMEXAM13CH376HFT.C

............此处省略541个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)