打印
[STM8]

STM8L152R8T6的OptionByte

[复制链接]
1134|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
skyhawl|  楼主 | 2017-12-18 11:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
没有找到具体的OptionByte的各个地址及其字节、位的含义的说明文档。不知道哪位能指点一下?另外,OptionByte的操作函数是不是有现成的例子?现在发现一个问题:FLASH_ProgramOptionByte的操作不成功。请指教。
沙发
香水城| | 2017-12-18 20:30 | 只看该作者
OptionByte的各个地址及其字节、位的含义的说明文档请查看该芯片的数据手册的option bytes 部分。

至于如何编程请查看编程手册PM0054.

关于OPtion编程ST有现存库例程可以参考。

使用特权

评论回复
板凳
gejigeji521| | 2017-12-18 23:06 | 只看该作者
1.选项字节的概念(参考stm8s中文数据手册):
           选项字节包括芯片硬件特性的配置和存储器的保护信息,这些字节保存在存储器中一个专用的
块内。除了ROP(读出保护)字节,每个选项字节必须被保存两次,一个是通常的格式(OPTx)和
一个用来备份的互补格式(NOPTx)。可以在ICP模式(通过SWIM)下访问下表中EEPROM的地址来修改选项字节。
选项字节也可以通过应用程序在IAP模式下修改,但是ROP选项只能在ICP模式(通过SWIM)下被
修改。
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通道*/
     }
  }

使用特权

评论回复
地板
skyhawl|  楼主 | 2017-12-21 13:35 | 只看该作者
好的。非常感谢!

使用特权

评论回复
5
heisexingqisi| | 2017-12-23 20:16 | 只看该作者
好久没有用过STM8了,都不知道这个怎么设置了。

使用特权

评论回复
6
xixi2017| | 2017-12-24 15:19 | 只看该作者
谁有这个的官方资料,分享分享。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

22

帖子

0

粉丝