你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
stm8s 停止输出pwm后,输出IO口的电平问题解决
[复制链接]
vilsenma
发布时间:2018-7-20 16:54
文章
文章封面:
-
文章简介:
-
问题:在使用定时器输出PWM时,假如此时关闭PWM的输出,其IO口会出现高低电平交替出现的情况!1.代码设置:
TIM2->CCER2寄存器设置的是输出使能和
输出有效电平为低电平;
/* Disable the Channel 1: Reset the CCE Bit, Set the Output State, the Output Polarity(low) */
TIM2->CCER2 &= (uint8_t)(~( TIM2_CCER2_CC3E | TIM2_CCER2_CC3P));
/* Set the Output State & Set the Output Polarity */
TIM2->CCER2 |= (uint8_t)((uint8_t)(0x11 & TIM2_CCER2_CC3E) | (uint8_t)(0x02 & TIM2_CCER2_CC3P));
/* Reset the Output Compare Bits & Set the Output Compare Mode(PWM1) */
TIM2->CCMR3 = (uint8_t)((uint8_t)(TIM2->CCMR3 & (uint8_t)(~TIM2_CCMR_OCM)) |<font color="#ff0000"> (uint8_t)0x60</font>);
复制代码
2.停止输出PWN:先使能定时器,然后
强制输出为有效电平
;
/* Disable timer2 */
TIM2->CR1 &= (uint8_t)(~TIM2_CR1_CEN);
/* Reset the OCM Bits & Configure the Forced output Mode */
TIM2->CCMR3 = (uint8_t)((uint8_t)(TIM2->CCMR3 & (uint8_t)(~TIM2_CCMR_OCM)) | <font color="#ff0000">(uint8_t)0x50</font>);
复制代码
3.重新启动定时器输出PWM:重新配置位输出PWM1模式,启动定时器
/* Reset the OCM Bits & Configure the Forced output Mode */
TIM2->CCMR3 = (uint8_t)((uint8_t)(TIM2->CCMR3 & (uint8_t)(~TIM2_CCMR_OCM)) | <font color="#ff0000">(uint8_t)0x60</font>);
TIM2->CR1 |= (uint8_t)TIM2_CR1_CEN; //产生pwm
复制代码
4.至于上面红色的设置关键字:
来自于stm8s参考手册TIMx_CCMR1
stm8såèæåââCCMR3å¯åå¨
赞
0
收藏
0
评论
2
分享
发布时间:2018-7-20 16:54
举报
请先
登录
后回复
2个回答
fanyao-367090
回答时间:2018-7-30 17:14:18
a0a.1 32b0c
楼主这个是求助还是分享啊,没看懂
赞
评论
回复
支持
反对
vilsenma
回答时间:2018-7-31 08:48:14
a1024a.1 32b0c
分享啊
赞
评论
回复
支持
反对
所属标签
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表