stm8之OptionByte的使用
作者:stm_小强 1.选项字节的概念(参考stm8s中文数据手册): ? ? ? ? ? ?选项字节包括芯片硬件特性的配置和存储器的保护信息,这些字节保存在存储器中一个专用的 2.ISP IAP ICP的概念(有待学习): ??ISP:In System Programing, ? ? ?在系统编程 ? 程序完全下载 ? IAP:In applicating Programing,在应用编程 ? 我的理解是用应用程序去修改芯片里边固定的一些数据(与应用编程无关的数据) ? ICP:In Circuit Programing, ? ? ? ?在电路编程 ? 3.stm8s芯片的备用功能重映射: ? ? ? ?stm8s芯片上带有很多备用的功能,这些功能必须使用重映射功能才能实现, ? ? ? ?重映射其实就是配置某个flash地址的某一位,使某个引脚具备备用功能或者默认功能的其中一个 ? ? ? ?而且一旦功能改,想恢复原来的功能必须重新写入。 ? ? ? ? ? ? ? ?比如stm8s的PD4端口具有TIM2_CH1 功能和BEEP功能,默认的情况下是TIM2_CH1功能, ? ? ? ?当我们要用到BEEP功能时必须写选项字,将这个引脚重映射为BEEP功能。 寄存器: stm8s的多个备选功能: 4.库函数实现重映射 //对于stm8s的选项字地址为0x4803 #define Beep_OptionAdd ?0x4803 ? ?void Set_Beep_OptionByte(void) ? ?{ ? ? uint16_t Beep_Option_status;/*记录激活备选功能Beep/TIM2_CH1的状态*/ ? ? Beep_Option_status=FLASH_ReadOptionByte(Beep_OptionAdd); ? ? /*Beep_Option_status的最高位为1激活了Beep,否则不激活,为TIM2_CH1*/ ? ? ?if((Beep_Option_status&0x8000)) ? ? ?{ ? ? ? FLASH_ProgramOptionByte(Beep_OptionAdd,(uint8_t)(Beep_Option_status&0x7fff)); ? ? /*向Beep_OptionAdd ?0x4803 置0,不激活激活了Beep,恢复TIM2_CH1通道*/ ? ? ?} ? } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |