stm32f10x_flash.doc
91FLASH寄存器结构10492FLASH库函数105NO函数名描述1FLASH_SETLATENCY设置代码延时值2FLASH_HALFCYCLEACCESS使能或者失能FLASH半周期访问3FLASH_PREFETCHBUFFER使能或者失能预取指缓存4FLASH_UNLOCK解锁FLASH编写擦除控制器5FLASH_LOCK锁定FLASH编写擦除控制器6FLASH_ERASEPAGE擦除一个FLASH页面7FLASH_ERASEALLPAGES擦除全部FLASH页面8FLASH_ERASEOPTIONBYTES擦除FLASH选择字节9FLASH_PROGRAMWORD在指定地址编写一个字10FLASH_PROGRAMHALFWORD在指定地址编写半字11FLASH_PROGRAMOPTIONBYTEDATA在指定FLASH选择字节地址编写半字12FLASH_ENABLEWRITEPROTECTION对期望的页面写保护(OB寄存器操作)13FLASH_READOUTPROTECTION使能或失能读出保护14FLASH_USEROPTIONBYTECONFIG编写FLASH用户选择字节IWDG_SW/RST_STOP/RST_STDBY15FLASH_GETUSEROPTIONBYTE返回FLASH用户选择字节的值16FLASH_GETWRITEPROTECTIONOPTIONBYTE返回FLASH写保护选择字节的值17FLASH_GETREADOUTPROTECTIONSTATUS检查FLASH读出保护设置与否18FLASH_GETPREFETCHBUFFERSTATUS检查FLASH预取指缓存设置与否19FLASH_ITCONFIG使能或者失能指定FLASH中断20FLASH_GETFLAGSTATUS检查指定的FLASH标志位设置与否21FLASH_CLEARFLAG清除FLASH待处理标志位22FLASH_GETSTATUS返回FLASH状态23FLASH_WAITFORLASTOPERATION等待某一个FLASH操作完成,或发生TIMEOUT9FLASH存储器FLASHSECTION91FLASH寄存器结构描述了固件函数库所使用的数据结构,SECTION92固件库函数介绍了函数库里的所有函数。91FLASH寄存器结构FLASH寄存器结构,FLASH_TYPEDEF和OB_TYPEDEF,在文件中定义如下TYPEDEFSTRUCT{VU32ACRVU32KEYRVU32OPTKEYRVU32SRVU32CRVU32ARVU32RESERVEDVU32OBRVU32WRPR}FLASH_TYPEDEFTYPEDEFSTRUCT{VU16RDPVU16USERVU16DATA0VU16DATA1VU16WRP0VU16WRP1VU16WRP2VU16WRP3}OB_TYPEDEFTABLE142和TABLE143例举了FLASH所有寄存器和选择字节(OPTIONBYTEOB)寄存器TABLE142FLASH寄存器寄存器描述ACRFLASH访问控制寄存器KEYRFPEC密钥寄存器OPTKEYR选择字节密钥寄存器SRFLASH状态寄存器CRFLASH控制寄存器ARFLASH地址寄存器OBR选择字节和状态寄存器WRPR选择字节写保护寄存器TABLE143OPTIONBYTE(OB)寄存器寄存器描述RDR读出选择字节USER用户选择字节DATA0DATA0选择字节DATA1DATA1选择字节WRP0写保护0选择字节WRP1写保护1选择字节WRP2写保护2选择字节WRP3写保护3选择字节FLASH也在文件“STM2F10X_MAPH”声明如下/FLASHREGISTERSBASEADDRESS/DEFINEFLASH_BASEU320X40022000/FLASHOPTIONBYTESBASEADDRESS/DEFINEOB_BASEU320X1FFFF800IFNDEFDEBUGIFDEF_FLASHDEFINEFLASHFLASH_TYPEDEFFLASH_BASEDEFINEOBOB_TYPEDEFOB_BASEENDIF/_FLASH/ELSE/DEBUG/IFDEF_FLASHEXTFLASH_TYPEDEFFLASHEXTOB_TYPEDEFOBENDIF/_FLASH/ENDIF使用DEBUG模式时,初始化指针FLASH和OB于文件IFDEF_FLASHFLASHFLASH_TYPEDEFFLASH_BASEOBOB_TYPEDEFOB_BASEENDIF/_FLASH/为了访问EXTI寄存器,_FLASH必须在文件“SM32F10X_CONFH”中定义如下DEFINE_FLASH在默认情况下,只有执行FLASH设置(延迟,预取指,半周期)的函数式允许执行的。如果想要执行FLASH编写/擦除/保护函数,必须在文件中定义_FLASH_PROG如下DEFINE_FLASH_PROG92FLASH库函数FLASH的库函数【见首页】921函数FLASH_SETLATENCYTABLE145函数FLASH_SETLATENCY函数名FLASH_SETLATENCY函数原形VOIDFLASH_SETLATENCYU32FLASH_LATENCY功能描述设置代码延时值输入参数FLASH_LATENCY指定FLASH_LATENCY的值输出参数无返回值无先决条件无被调用函数无FLASH_LATENCY用来设置FLASH存储器延时时钟周期数。见TABLE146查阅该参数可取的值TABLE146FLASH_LATENCY值FLASH_LATENCY描述/ACRBIT20VALUE意义FLASH_LATENCY_00SYSCLK延时周期0X000000000个等待状态,当0ACR//0X00000038,高位保留位必须保持为0FLASHACR|FLASH_LATENCY}922函数FLASH_HALFCYCLEACCESSTABLE147函数FLASH_HALFCYCLEACCESS函数名FLASH_HALFCYCLEACCESS函数原形VOIDFLASH_HALFCYCLEACCESSU32FLASH_HALFCYCLEACCESS功能描述使能或者失能FLASH半周期访问输入参数FLASH_HALFCYCLEACCESSFLASH_HALFCYCLE访问模式输出参数无返回值无先决条件无被调用函数无FLASH_HALFCYCLEACCESS用来选择FLASH半周期访问的模式。TABLE148FLASH_HALFCYCLEACCESS值FLASH_HALFCYCLEACCESS描述/ACRHLFCYAVALUE/BIT4FLASH_HALFCYCLEACCESS_ENABLE半周期访问使能0X00000008FLASH_HALFCYCLEACCESS_DISABLE半周期访问失能0X00000000例/ENABLETHEHALFCYCLEFLASHACCESS/FLASH_HALFCYCLEACCESSFLASH_HALFCYCLEACCESS_ENABL