- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)