历史上的今天
今天是:2025年03月25日(星期二)
2020年03月25日 | STM8固件库+IAR 之--CLK
2020-03-25 来源:eefocus
STM8的时钟控制十分强大,用户可独立地管理各个时钟源,并将它们分配到CPU或各个外设。主时钟和CPU时钟均带有预分频器。具有安全可靠的无故障时钟切换机制,可在程序运行中将主时钟从一个时钟源切换到另一个时钟源。本程序是更改内部2M或者外部8M晶振,让led2闪灯,通过不同初始化,能观察出led的快慢,上代码:
#include "stm8s.h"
/*========内部高速时钟初始化========*/
void init_hsiclk(void)
{
CLK_DeInit(); //寄存器复位
CLK_HSICmd(ENABLE); //内部高速时钟使能
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV8); //内部8分频 2M
}
/*==========外部高速时钟初始化=======*/
void init_hseclk(void)
{
CLK_HSECmd(ENABLE); //外部时钟开 8M
CLK_ClockSwitchCmd(ENABLE); //切换使能
CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO ,CLK_SOURCE_HSE,DISABLE,CLK_CURRENTCLOCKSTATE_DISABLE); //切换配置
CLK_ClockSecuritySystemEnable(); //开启时钟安全系统 当外部晶振损坏,自动转为内部2M时钟,牛X
}
/*========GPIO初始化========*/
void init_gpio(void)
{
GPIO_DeInit(GPIOD); //PD口复位
GPIO_Init(GPIOD , GPIO_PIN_2 , GPIO_MODE_OUT_PP_LOW_SLOW); // LED2初始化 推挽输出
}
/*========延时函数===========*/
void delay(u16 n)
{
u16 i=0;
while(n--)
{
for(i=0;i<330;i++);
}
}
/*========主函数===========*/
void main(void)
{
init_hsiclk(); //更换成init_hseclk();观察led闪灯速度
init_gpio();
while (1)
{
GPIO_WriteReverse(GPIOD,GPIO_PIN_2);
delay(1000);
}
}
史海拾趣
|
本公司代理销售ST的STM32系列MCU 公司地址:广东深圳市福田区南园路70号上田大厦4D 公司官网:www.upsd8051.com 联系方式:MSN:lg_0755@hotmail.com,QQ:45293156; TEL:0755-83248843,E-Mail:hubin@u ...… 查看全部问答> |
|
本人对电子电路设计一点都不了解,选修不得已选了这门课,因为人文自然学科学分都修满 了,所以只能选工程科.这门课程就快结束了,过两天就要交作业,作业成绩作为这科期末成绩.前几 天下载了几个版本软件,都安装不了.实在没时间下载了,宿舍四个人一条 ...… 查看全部问答> |
|
我要用到两个个16位的ADC,对速度没有要求,但是要求保证精度。看了stm32的手册,上边讲是应用过采样技术将提高ADC的精度。感觉很不错,这样我就能省两个ADC的钱了,降低了不少成本。 我现在 ...… 查看全部问答> |
|
正交编码器,旋转编码器的一种(增量式编码器),用来确定机械行程的位移量与方向。通过监控脉冲数目和两个脉冲的相对相位,可以跟踪旋转的位置,旋转 和速度。比如电机转速。LM3S8962包含两个正交编码器接口,这对于电机驱动与监控足够,不过编码 ...… 查看全部问答> |
|
at tiny44a 简单的用下ad转化,可就是转换完成标志就是不置位 用的 atmel studio6.0 主频 8M 每次走到while 就停住了 /* * ADC.c * * Created: 2012/6/18 16:13:15 * Author: Administrator */ #include #include unsigned int Adc_Val; unsigned int sum; void ADC_In ...… 查看全部问答> |




