stm8的选项字节设定

上传人:平*** 文档编号:12797371 上传时间:2017-10-20 格式:DOC 页数:11 大小:254.50KB
返回 下载 相关 举报
stm8的选项字节设定_第1页
第1页 / 共11页
stm8的选项字节设定_第2页
第2页 / 共11页
stm8的选项字节设定_第3页
第3页 / 共11页
stm8的选项字节设定_第4页
第4页 / 共11页
stm8的选项字节设定_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《stm8的选项字节设定》由会员分享,可在线阅读,更多相关《stm8的选项字节设定(11页珍藏版)》请在金锄头文库上搜索。

1、#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); 参考这个,相当于操作 EEPROMiCreate

2、 发表于 2013-3-26 21:45:46 |只看该作者 |返回版面heartdoll 发表于 2013-3-26 21:33 请问风驰大哥,STVD 里面 tools-programa里可以进行 IO口重映射设置。但是不知道在 IAR环境下怎么操作 IO口重映 .有 2种方法,第一种可以用代码来设置,我封装的一个函数typedef enumAFR7_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_CH

3、4=(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

4、_AFR 即可,下载程序后只有第一次执行打印出来设置前的功能才是对的,执行完之前就被写进 flash,如果不修改的话,每次都出来的数据都是一样,所以只执行一次就行了,建议用的时候,就在调试的时候进行执行一次就可以,以后都不需要出现了,除非再次更改。在调用 AlternateFunctionRemapping函数之前需要初始化串口函数 Uart_Init这些设置写进 flash,运行一次即可,在调试的时候运行即可*/void AlternateFunctionRemapping(Remap_Function_TypeDef Function)uint8_t Function_temp;FLASH

5、_Unlock(FLASH_MEMTYPE_DATA);/*要对选项字节写操作,必须要先解锁 FLASH*/while(!(FLASH-IAPSR & FLASH_IAPSR_DUL);/*等待解锁完毕*/*备选功能重映射的设置可以同时写多个不会被覆盖,因此在操作之前读取当前的状态,再根据当前的状态进行修改*/Function_temp=(uint8_t)(FLASH_ReadOptionByte(AFR_ADDRESS)8);#ifdef DEBUG_AFRprintf(rnFunction_temp:%xrn,Function_temp);#endifwhile(!(FLASH-IAPSR

6、 & FLASH_IAPSR_DUL);/*等待解锁完毕*/FLASH_ProgramOptionByte(AFR_ADDRESS,Function|Function_temp);#ifdef DEBUG_AFRFunction_temp=(uint8_t)(FLASH_ReadOptionByte(AFR_ADDRESS)8);printf(rnFunction_temp:%xrn,Function_temp);#endifFLASH_Lock(FLASH_MEMTYPE_DATA);/*操作完要加锁*/只要调用我的这个函数就可以恢复初始值/* 名称: DefaultFunctionRema

7、pping* 功能: 恢复默认功能的设置* 形参: Function 需要恢复默认的功能 * 返回: 无* 说明: 如果调试需要打印数据的时候在自定义宏的地方添加#define DEBUG_AFR 即可,下载程序后只有第一次执行打印出来设置前的功能才是对的,执行完之前就被写进 flash,如果不修改的话,每次都出来的数据都是一样,所以只执行一次就行了,建议用的时候,就在调试的时候进行执行一次就可以,以后都不需要出现了,除非再次更改。在调用 DefaultFunctionRemapping函数之前需要初始化串口函数 Uart_Init 这些设置写进 flash,运行一次即可,在调试的时候运行即可

8、*/void DefaultFunctionRemapping(Default_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_AD

9、DRESS)8);#ifdef DEBUG_AFRprintf(rnFunction_temp:%xrn,Function_temp);#endifFLASH_ProgramOptionByte(AFR_ADDRESS,Function & Function_temp);#ifdef DEBUG_AFRFunction_temp=(uint8_t)(FLASH_ReadOptionByte(AFR_ADDRESS)8);printf(rnFunction_temp:%xrn,Function_temp);#endifFLASH_Lock(FLASH_MEMTYPE_DATA);/*操作完要加锁

10、*/typedef enumAFR7_PD4_TIM2_CH1=(uint8_t)0x7f,AFR6_PB5_AIN5_PB4_AIN4=(uint8_t)0xbf,AFR5_PB3_2_1_0_AIN3_2_1_0=(uint8_t)0xdf,AFR4_PD7_TLI=(uint8_t)0xef,AFR3_PD0_TIM3_CH2=(uint8_t)0xf7,AFR2_PD0_TIM3_CH2=(uint8_t)0xfb,AFR1_PA3_TIM2_CH3_PD2_TIM3_CH1=(uint8_t)0xfd,AFR0_PD3_TIM2_CH2=(uint8_t)0xfeDefault_Fu

11、nction_TypeDef;调用这个函数就可以恢复原来的设置了。第二种方式就是用 ST-LINK结合 IAR设置,详情请见楼主位的 9和 14这 2份教程,很清楚的介绍查看: 2803|回复: 15 STM8 stm8 的选项字节 软件里怎么配置 复制链接 此帖已结(0)电梯直达1#stmsky 发表于 2010-4-9 13:46:42 |只看该作者 |倒序浏览 |返回版面 回复提示: 作者被禁止或删除 内容自动屏蔽stmsky禁止访问积分342帖子94本月在线0小时 0分专家等级: 结帖率:0%分享 0 收藏 0 评分 举报2#jgphu 发表于 2010-8-10 20:51:07 |

12、只看该作者 |返回版面 回复我也想问你这个问题jgphu助理工程师 积分1920帖子606本月在线1小时 15分专家等级: 结帖率:98%评分 举报3#香水城 发表于 2010-8-10 21:43:23 |只看该作者 |返回版面 回复请按照手册中介绍的这样,先使能对 Option byte的写操作,然后直接写入要操作的字节即可。STM8S_Writing_Option_Byte.GIF (15.72 KB, 下载次数: 65)版主 积分45189帖子14302本月在线2小时 15分专家等级: 结帖率:100%I do not teach, but I coach. I do not feed

13、, but I seed.欢迎访问我的博客:http:/ 举报4#pkat 发表于 2010-8-11 08:49:40 |只看该作者 |返回版面 回复按手册上的操作就可以了,如果看不明白英文版的,我这里还有中文版的pkat高级工程师 积分7437帖子2376本月在线0小时 0分专家等级: 结帖率:8%评分 举报5#32446975 发表于 2010-9-14 09:46:01 |只看该作者 |返回版面 回复收藏32446975中级技术员 积分216帖子70本月在线0小时 0分专家等级: 结帖率:100%STM32,STM8,51,PIC,AVR。QQ:281342118评分 举报bluefe

14、el实习生 积分42帖子14本月在线0小时 0分6#bluefeel 发表于 2010-9-14 17:04:34 |只看该作者 |返回版面 回复#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专家等级: 结帖率:100%评分 举报7#火箭球迷 发表于 2010-9-14 18:03:05 |只看该作者 |返回版面 回复认真看一下香主给的资料,就知道怎么配置了火箭球迷技术达人 积分9630帖子3137本月在线0小时 0分专家等级: 结帖率:4%姚明的铁杆球迷评分 举报jgphu助理工程师 积分1920帖子606本月在线1小时 15分8#jgphu 发表于 2010-9-15 10:02:40 |只看该作者 |返回版面 回复下面的程序是产品验证过的。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号