IAR for STM8 为何可以不配置时钟?

本文探讨了STM8芯片即使未显式配置时钟也能运行的原因。STM8默认使用内部时钟8分频的2M时钟运行,使得GPIO配置不依赖其他时钟,能够实现LED灯闪烁等功能。

初学STM8,先是照着网上的教程建立了一个IAR工程,然后下载一个官方的固件库,搞了一个案例模板,功能超简单,就是一个LED灯闪烁,main函数就这么点内容:

void main(void)
{

  /* Initialize I/Os in Output Mode */
  GPIO_Init(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS, GPIO_MODE_OUT_PP_LOW_FAST);

  while (1)
  {
    /* Toggles LEDs */
    GPIO_WriteReverse(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS);
    Delay(20000);
  }

}

直接连接STM8核心小板就欢快地跑起来了。。。等等?是不是少了什么?
为什么我没配置时钟,STM8芯片还能跑?

对比STC的51单片机,嗯,可能是配置位的问题,我就先看一下配置位:
这里写图片描述
这几个和时钟配置相关的配置位都没有内部rc震荡器的配置。
没办法,只能去看一下STM8S103的芯片文档。。。还是官方资料靠谱,原因在这里:
这里写图片描述
这个芯片哪怕不设置时钟,也会运行一个内部时钟8分频的2M默认时钟,与STM32不同的是,对于GPIO口的配置不再依赖其他时钟,所以程序就能依据这个2M的时钟让IO口闪动,果然解决疑难杂症的最好法子还是看手册(如果手册没问题的话)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值