单片机
返回首页

STM8学习笔记——时钟和GPIO

2015-12-14 来源:eefocus

说起STM8的时钟,那还真是个杯具,用HSI没问题,切换到HSE也没问题,就是切LSI怎么都不行,然后百思不得其解人,然后上论坛求教,才知道还有个选项字节(OPTION BYTE),数据手册上有这么一段描述:

“选项字节包括芯片硬件特性的配置和存储器的保护信息,这些字节保存在存储器中一个专用的块内。除了ROP(读出保护)字节,每个选项字节必须被保存两次,一个是通常的格式(OPTx)和一个用来备份的互补格式(NOPTx)”

STM8学习笔记——时钟和GPIO

   要使用内部低速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_ICKR&0x10==0);//LSI准备就绪
  CLK_SWR=0xd2;
  while(CLK_SWCR&0x08==0); //等待目标时钟源就绪
  CLK_SWCR|=0x02;  
  //CPU分频设置
  CLK_CKDIVR=0;//内部RC输出不分频,CPU亦分频
}

 

  GPIO的操作相对来说简单些,无非是方向选择,输入输出的设置啊,等等一些,在此就不再赘述了,详见手册GPIO部分。

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • CCD图像传感器在微光电视系统中的应用

  • 光控音效发生器电路

  • 离子检测器电路分析

  • 基于IC555的可变PWM振荡器电路

  • 一个简单的立体声平衡指示器电路

  • 分享一个电网倾角计电路

    相关电子头条文章