原创 STM8(用库)实例赏析---PWM

2013-10-12 13:45 8137 6 8 分类: MCU/ 嵌入式

//占空比50%

#include "stm8s.h"

void main(void)
{
 //系统时钟切换配置(自动切换,外部高速晶振,关闭切换中断,
 CLK_ClockSwitchConfig (CLK_SWITCHMODE_AUTO, CLK_SOURCE_HSE,
//切换后关闭旧的时钟源)
DISABLE, CLK_CURRENTCLOCKSTATE_DISABLE );
 //TIM1复位
 TIM1_DeInit();
 //16 MHz/16 分频= 1 兆赫、向上计数, 1 MHz /1000 =计数 1000
 TIM1_TimeBaseInit( 15, TIM1_COUNTERMODE_UP, 1000, 0 );
 //初始化捕获/比较通道1(PWM模式1,启用输出比较),
 TIM1_OC1Init( TIM1_OCMODE_PWM1, TIM1_OUTPUTSTATE_ENABLE,
//启用互补输出比较1,脉宽50%,输出比较极性高电平,
TIM1_OUTPUTNSTATE_ENABLE, 500, TIM1_OCPOLARITY_HIGH,
//互补输出比较极性高电平,输出比较空闲状态复位,互补输出比较空闲状态复//位)
TIM1_OCNPOLARITY_HIGH, TIM1_OCIDLESTATE_RESET, TIM1_OCNIDLESTATE_SET );

 //TIM1_BDTRConfig( TIM1_OSSISTATE_ENABLE, TIM1_LOCKLEVEL_OFF, 0xff, TIM1_BREAK_DISABLE, TIM1_BREAKPOLARITY_LOW, TIM1_AUTOMATICOUTPUT_ENABLE);
        //启用定时器
 TIM1_Cmd(ENABLE);
        //允许主输出      移动 TIM1 定时器。选择 PWM 输出。
  TIM1_CtrlPWMOutputs(ENABLE);

 while(1) { }  // main loop
}

#ifdef USE_FULL_ASSERT
void assert_failed(u8* file, u32 line)
{
  while (1)   { }
}
#endif 

 

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户377235 2015-7-31 15:01

你好,请问下,这里这个TIM1_TimeBaseInit( 15, TIM1_COUNTERMODE_UP, 1000, 0 );,第一个参数15,解析说是16分频,请问下,我现在15改成16有什么差别吗 ?是时钟变了吗?

用户1814892 2015-5-13 10:57

赞!
相关推荐阅读
用户92689 2013-10-26 08:50
stm32-DAC应用一例
设定:1ms   0-16 输出: 16   3.000V  15  2.813V  14  2.625V 13  2.438V  12 2.250V 11  2.063V 1...
用户92689 2013-10-17 09:19
STM32 ---时序和延迟
#include<stm32f10x_rcc.h> #include<stm32f10x_gpio.h> #include "stm32f10x.h" #inclu...
用户92689 2013-10-12 10:43
STM8(用库)实例赏析---TMI1
//0.5秒定时,LED闪烁 #include "stm8S.h" void main(void) {  //系统时钟切换配置(自动切换,外部高速时钟,关切换中断  //,切换新时钟...
用户92689 2013-10-12 10:16
STM8(用库)实例赏析---GPIO
 /*上电系统内部高速时钟默认为2MHz,    可选择不同的时钟分频值,观察LED亮灯速度。*/  #include "stm8s.h" //======= void delay(u...
用户92689 2013-10-05 21:13
STM8(用库)实例赏析---CLK
实例一:内部高速时钟切换 并可在CCO引脚上检测切换后的时钟信号。(红色部分)   #include "stm8s.h" //***************************...
我要评论
2
6
关闭 站长推荐上一条 /3 下一条