你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM8S103F2,关于定时器1输出PWM的程序移植

[复制链接]
lxm639 提问时间:2015-12-14 15:38 /
我在STM8S103K,上能够实现定时器1中的CH1通道可以实现PWM功能,把程序移植到STM8S103F中,就实现不了,但是修改STM8S103F,的通道3和4后,也能输出PWM,这是为什么,程序如下:

void TIMER1_PWMInit(void){

  TIM1_DeInit();//恢复相关寄存器至初始值
TIM1_TimeBaseInit(8, TIM1_COUNTERMODE_UP, 14355, 0);//时基初始化,预分频值1,向上计数,自动重装值49999,重复计数器值0

TIM1_OC4Init(TIM1_OCMODE_PWM1, TIM1_OUTPUTSTATE_ENABLE, 7050, TIM1_OCPOLARITY_LOW, TIM1_OCIDLESTATE_SET);
TIM1_CCxCmd(TIM1_CHANNEL_4, ENABLE);   //这行区别于T2的PWM
TIM1_OC4PreloadConfig(ENABLE);//输出比较 预装载使能




TIM1_OC3Init(TIM1_OCMODE_PWM1, TIM1_OUTPUTSTATE_ENABLE, TIM1_OUTPUTNSTATE_ENABLE,7500, TIM1_OCPOLARITY_HIGH, TIM1_OCNPOLARITY_LOW, TIM1_OCIDLESTATE_RESET, TIM1_OCNIDLESTATE_RESET);//输出比较通道3 初始化,匹配时输出电平翻转,启用输出比较,禁
//用输出比较互补输出,脉宽5000,输出比较极性位低电平,互补输出比较极性高电平,输出比较空闲状态高电平,互补输出比较空闲状态低电平
TIM1_CCxCmd(TIM1_CHANNEL_3, ENABLE);   //这行区别于T2的PWM
TIM1_OC3PreloadConfig(ENABLE);//输出比较 预装载使能


TIM1_OC2Init(TIM1_OCMODE_PWM1, TIM1_OUTPUTSTATE_ENABLE, TIM1_OUTPUTNSTATE_ENABLE,7500, TIM1_OCPOLARITY_HIGH, TIM1_OCNPOLARITY_LOW, TIM1_OCIDLESTATE_RESET, TIM1_OCNIDLESTATE_RESET);
TIM1_CCxCmd(TIM1_CHANNEL_2, ENABLE);   //这行区别于T2的PWM
TIM1_OC2PreloadConfig(ENABLE);//输出比较 预装载使能

TIM1_OC1Init(TIM1_OCMODE_PWM1, TIM1_OUTPUTSTATE_ENABLE, TIM1_OUTPUTNSTATE_ENABLE,7500, TIM1_OCPOLARITY_HIGH, TIM1_OCNPOLARITY_LOW, TIM1_OCIDLESTATE_RESET, TIM1_OCNIDLESTATE_RESET);
TIM1_CCxCmd(TIM1_CHANNEL_1, ENABLE);   //这行区别于T2的PWM
TIM1_OC1PreloadConfig(ENABLE);//输出比较 预装载使能





TIM1_CtrlPWMOutputs(ENABLE);//使能TIM1 主输出
TIM1_Cmd(ENABLE);//使能TIM1 计数器计数

}


收藏 评论0 发布时间:2015-12-14 15:38

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版