说起STM8的时钟,那还真是个杯具,用HSI没问题,切换到HSE也没问题,便是切LSI怎样都不可,然后百思不得其解人,然后上论坛请教,才知道还有个选项字节(OPTION BYTE),数据手册上有这么一段描绘:
“选项字节包含芯片硬件特性的装备和存储器的维护信息,这些字节保存在存储器中一个专用的块内。除了ROP(读出维护)字节,每个选项字节有必要被保存两次,一个是一般的格局(OPTx)和一个用来备份的互补格局(NOPTx)”
要运用内部低速RC有必要将LSI_EN置1,便是这个当地让我纠结了半响,然后用IAR将其置1,办法是:进入调试形式,在上面有个ST-LINK,点击,看到OPTION BYTE,左键点进去,右键单击上面的选项,就可更改了,然后全速运转,就写进去了。
STM8的时钟分为HSI,HSE,LSI,最常用的是HSI,STMS105S4内置的是16M的RC,叫fhsi。它能够分频输出为fhsidiv=fhsi/hsidiv,假如挑选其为主时钟源,那么主时钟fmaster=fhsidiv。CPU时钟fcpu=fmaster/cpudiv。
能够经过外设时钟门控寄存器CLK_PCKENR1和CLK_PCKENR2挑选是否与某个外设衔接。
好了上个切换内部时钟的源代码,测试经过
void CLK_Init(void)
{
//切换到内部LSI(!!!需求修正选项字节的LSI_EN为1)
CLK_ICKR|=0x08;//敞开内部低速RC震动
while(CLK_%&&&&&%KR&0x10==0);//LSI准备安排妥当
CLK_SWR=0xd2;
while(CLK_SWCR&0x08==0); //等候方针时钟源安排妥当
CLK_SWCR|=0x02;
//CPU分频设置
CLK_CKDIVR=0;//内部RC输出不分频,CPU亦分频
}
GPIO的操作相对来说简略些,无非是方向挑选,输入输出的设置啊,等等一些,在此就不再赘述了,详见手册GPIO部分。
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/fenxiao/260406.html