C言语:Codee#11722
+ 试验渠道: STM8S103F2P6 FM 接纳试验中心板
+ 硬件 : STM8S103F2P6
+ 开发渠道: IAR For STM8 1.10
+ 仿真器 : ST-Link
+ 日期 : 2010-6-22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
#include “stm8s.h”
/*******************************************************************************
* ==启用外部晶振函数==
*******************************************************************************/
voidHSE_CLK_INIT(void)
{
CLK_DeInit();
CLK_HSECmd(ENABLE);
while(SET!=CLK_GetFlagStatus(CLK_FLAG_HSERDY));
CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1);
CLK_ClockSwitchCmd(ENABLE);
CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO,CLK_SOURCE_HSE,DISABLE,CLK_CURRENTCLOCKSTATE_ENABLE);
}
/*******************************************************************************
* ==定时器2初始化函数==
* TIM2_DeInit(); –> 初始化定时器2寄存器
* TIM2_TimeBaseInit(TIM2_PRESCALER_1, 224); –> 定时器2根本初始化 设置 分频系数 , 初值
–> ( 无分频 , 7372800 / 32768 = 225 校准为224 )
* TIM2_OC1Init(TIM2_OCMODE_PWM1 , TIM2_OUTPUTSTATE_ENABLE , 112 , TIM2_OCPOLARITY_HIGH);
–> 定时器2输出方法 为PWM1 , 定时器2输出状况使能 , 输出占空比 50% , 输出开始电平 为高
* TIM2_Cmd(ENABLE); –> 发动定时器
*******************************************************************************/
voidTIME2_INIT(void)
{
TIM2_DeInit();
TIM2_TimeBaseInit(TIM2_PRESCALER_1,224);
TIM2_OC1Init(TIM2_OCMODE_PWM1,TIM2_OUTPUTSTATE_ENABLE,112,TIM2_OCPOLARITY_HIGH);
TIM2_Cmd(ENABLE);
}
/*******************************************************************************
* ==Main函数==
* 用示波器丈量stm8s103f2p6 的Timer_OC1端,即1脚。得到占空比50%的,32768Hz的方波
* 为保证安稳,能够在输出管束加上上拉电阻
*******************************************************************************/
voidmain(void)
{
HSE_CLK_INIT();
TIME2_INIT();
while(1);
}