stm8的选项字节设定.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
stm8的选项字节设定

#include iostm8.h? void main(void)? {? ? ? FLASH_DUKR = 0xae;? ? ? asm(nop);? ? ? FLASH_DUKR = 0x56;? ? ? asm(nop);? ? ? while(!(FLASH_IAPSR 0x08));? ? ? asm(nop);? ? ? FLASH_CR2 = 0x80;? ? ? asm(nop);? ? ? FLASH_NCR2 = 0x7f;? ? ? asm(nop);? ? ? *((unsigned char *)0x487e) = 0x55;? ? ? asm(nop);? ? ? *((unsigned char *)0x487f) = 0xaa;? ? ? while(1);? } 参考这个,相当于操作EEPROM ?iCreate?发表于 2013-3-26 21:45:46?|只看该作者?|返回版面 heartdoll 发表于 2013-3-26 21:33? 请问风驰大哥,STVD里面tools-programa里可以进行IO口重映射设置。但是不知道在IAR环境下怎么操作IO口重映 ... 有2种方法,第一种可以用代码来设置,我封装的一个函数 typedef enum{ ?? ??AFR7_PD4_BEEP=(uint8_t)0x80, ??AFR6_PB4_5_I2C_SDA_SCL=(uint8_t)0x40, ??AFR5_PB3_2_1_0_TIM1_ETR_CH2_1_0=(uint8_t)0x20, ??AFR4_PD7_TIM_CH4=(uint8_t)0x10, ??AFR3_PD0_TIM1_BKIN=(uint8_t)0x08, ??AFR2_PD0_CLK_CCO=(uint8_t)0x04, ??AFR1_PA3_TIM3_CH1_PD2_TIM2_CH3=(uint8_t)0x02, ??AFR0_PD3_ADC_ETR=(uint8_t)0x01? }Remap_Function_TypeDef; /******************************************************************************* * 名称: AlternateFunctionRemapping * 功能: 选功能重映射的设置 * 形参: Function 需要重映射的功能? ?? ? * 返回: 无 * 说明: 如果调试需要打印数据的时候 ? ?? ?? ?在自定义宏的地方添加#define DEBUG_AFR即可,下载程序后只有第一次执行 ? ?? ?? ?打印出来设置前的功能才是对的,执行完之前就被写进flash,如果不修改的话, ? ?? ?? ?每次都出来的数据都是一样,所以只执行一次就行了,建议用的时候,就在调 ? ?? ?? ?试的时候进行执行一次就可以,以后都不需要出现了,除非再次更改。 ? ?? ?? ?在调用AlternateFunctionRemapping函数之前需要初始化串口函数Uart_Init ? ?? ?? ?这些设置写进flash,运行一次即可,在调试的时候运行即可 ******************************************************************************/ void AlternateFunctionRemapping(Remap_Function_TypeDef Function) { ??uint8_t Function_temp; ?? ??FLASH_Unlock(FLASH_MEMTYPE_DATA);/*要对选项字节写操作,必须要先解锁FLASH*/ ??while(!(FLASH-IAPSR FLASH_IAPSR_DUL));/*等待解锁完毕*/ ??/*备选功能重映射的设置可以同时写多个不会被覆盖,因此在操作之前读取当前的状态,再根据当前的状态进行修改*/ ??Function_temp=(uint8_t)(FLASH_ReadOptionByte(AFR_ADDRESS)8); ??#ifdef??DEBUG_AFR ??printf(\r\nFunction_temp:%x\r\n,Function_temp); ??#endif ??while(!(FLASH-IAPSR FLASH_IAPSR_DUL));/*等待解锁完毕*/ ??FLASH_ProgramOptionByte(AFR_ADDRESS,Function|Function_temp); ?? ??#ifdef??DEBUG_AFR ?

文档评论(0)

wt60063 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档