STM8S105S4_PKT学习笔记(1) LED灯

工程框图:


环境:STVD + Cosmic


程序:

#include "STM8S207S6.h"

void Delay(unsigned int count)
{
	while(count--);
}

void Gpio_Init(void)
{
	PD_DDR |= 0x0D;
	PD_CR1 |= 0x0D;
	PD_CR2 |= 0x00;
}

void Clock_Init(void)
{
	CLK_SWCR |= 0x02;//使能切换机制
	CLK_ECKR |= 0x01;//外部晶振使能
	while(!(CLK_ECKR & 0x02));//等待HSE准备就绪
	CLK_SWR  = 0xB4;//选择HSE为主时钟
	CLK_CSSR |= 0x01;//时钟安全系统使能
}

main()
{
	Clock_Init();
	Gpio_Init();
	while (1)
	{
		PD_ODR = 0x0D;
		Delay(50000);
		PD_ODR = 0x00;
		Delay(50000);
	}
}

我的这块板子的主芯片是STM8S207S6,反正都是STM8S系列的
上述程序,没有Clock_Init()函数程序也可以运行,只不过LED灯闪烁的频率会比现在低。手册上说:启动时,主时钟源默认为HSI的8分频,即HSI/8=2MHZ
程序中Clock_Init()函数的作用是将主时钟源切换为外部晶振(HSE),这里板子上接的外部晶振为8MHZ,所以用外部晶振作为时钟源是LED的闪烁频率会比用HSI/8作为时钟时的频率高。这里时钟切换采用是自动切换,并且使能了时钟安全系统,(当HSE失效时,HSI/8作为备用时钟源),验证的方法是程序运行了,将外部晶振拔掉,会看到LED闪烁的频率有明显的变化


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值