功用完成方针
经过对选项字节的写操作来完成TIM2的CH3通道的PWM输出IO复用,可以设置为PA3或许PD2输出。
经过STVP办法操作链接
选项字节
选项字节包含芯片硬件特性的装备和存储器的维护信息,这些字节保存在存储器中一个专用的块内。除了ROP(读出维护)字节,每个选项字节有必要被保存两次,一个是一般的格局(OPTx)和一个用来备份互补格局的(NOPTx)。选项字节可以经过应用程序在IAP形式下修正,可是ROP选项只能在ICP形式(经过SWIM)下被修正。有关SWIM编程进程的内容可以参阅STM8S闪存编程手册(PM0051)和STM8 SWIM通信协议和调试模块用户手册(UM0470)。
不同的芯片的选项字节巨细不相同,详细的可以参阅芯片数据手册。如用STM8S103F3来举例,选项字节如下:
STM8S103F关于20脚封装的产品的复用功用重界说位:
由此可知咱们要将OPT2字节中的AFR1位进行写操作,经过写0,则端口A3复用功用TIM2_CH3,经过写1,端口D2复用功用TIM2_CH3。接下来经进程序完成这个功用,可以修正AFR1的值来看PWM输出是否切换了管脚,如果能,则是完成了写操作。
选项字节存放在EEPROM中,所以可以经过读写EEPROM相同的操作办法来修正选项字节。应用程序可以直接向方针地址进行写操作。地址从上面的图中咱们现已知道了:0x4803,0x4804。寄存器的装备可以查阅参阅手册(RM0016)。
相关寄存器操作:
测验程序完成
留意:完成程序擦写OpTIon Bytes时,不能运转应用程序,不然会呈现过错!不过仍是觉得这点费事啊,还不如用STVP来擦写,要是可以放在应用程序中共存来擦写就好了,用程序完成复用就这么费事吗?希望能探究找到好的办法,最终只找到了个不靠谱的,就是在擦写后加上延时,可是这个时管用时不管用。仍是再查阅材料看看是怎么回事?
可是用STVP擦写时又遇到了这个过错:
Error : Error on Option Bytes (complementary bytes)。 Reprogram Option Bytes of device
Error : 《 OPTION BYTE verifying failed.
123
用STVP来擦写Option Bytes了,先将ROP设置为ON,然后再擦写Option Bytes,会呈现两个提示框,挑选是(Y),再之后又将ROP设置为OFF,再次擦写Option Bytes,则又可以用STVD经过stlink来烧写程序并仿真了。