STM8教程-第十四章STM8S207PWM模块及其应用实例.docxVIP

STM8教程-第十四章STM8S207PWM模块及其应用实例.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
STM8教程-第十四章STM8S207PWM模块及其应用实例

第十四章 STM8S207 PWM 模块及其应用实例上一节我们学习了定时器中的基本定时器编程,这一节学习定时器里面一个 PWM模块。当终于到了 PWM 模块编程时,有些许怀念,怀念过去的一年之中的日以继夜相对的 PWM。忘了介绍我们的团队---风驰,也就是第六届飞思卡尔比赛中的一个队伍。 1、PWM 介绍 脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。 PWM 在实际应用很广,例如上面提到的飞思卡尔智能车就用到 PWM 控制舵机以及电机。关于舵机是如何用 PWM 控制的,这里不详细说明,有兴趣的建议查询相关知识。这些在模型制作中应用十分广泛。关于 PWM 如果控制电机的这里略为说明,因为和本节有些许关联 普通直接电机在通电时以全电压工作,在没有 PWM 控制电机之前是运用继电器通过不停开断实现对电机的速度控制。引入 PWM 就可以更为灵活控制电机。 PWM 是脉冲宽度可调的方波,在 10K 左右的频率下,通过不同的占空比就可以得到近似稳定的电压。例如输入 5V,占空比为 50%时,电压近似 2.5V。我们这节实验也是应用 PWM 这个特性。利用 PWM 中的占空比调节 LED 的亮度。 关于 PWM 的说明这里也简要说明,PWM 第一个参数是 PWM 的周期,也就是一个 PWM 的时间。这个可以通过对应的寄存器进行设置,而我们的 STM8S207 通过PSCR 设置定时器的时钟源 CK_CNT,然后再通过 ARR 寄存器设置周期。例如我们这节的实验使用了 16M 内部时钟源,LED4 是接着 PD3 的,也就是 TIM2_CH2,PSCR只能是 2 的次幂,我们选择了 4 分频。CK_CNT = 4M,然后 ARR 设置为 200,分频 200 后直接提供 PWM 的时钟,所以 f_pwm = 4M/200 = 20KHz。20KHz 也是我们小车的频率啊,怀念! 第二个参数是占空比,例如 30%,就是一个占 30%,空 70%,也可以在 STM8S里面的解析为 30%为无效电平,70%为有限电平。所以这样在 20KHz 的周期中高电平占了 70%,30%为低电平。当然这里只是举例说明,这些并非固定。因为有效电平是可以程序设置的。不同的单片机可以设置的参数也不尽相同。例如之前使用的 S12 单片机还有对齐方式等等功能设置。 2、PWM 寄存器设置 STM8S207 的 PWM 功能是高级定时器或者通用定时器的一个附加功能,这和MC9S12XS128 的有些区别,但是唯一的不同是 STM8S207 的 PWM 会占用相应的定时器功能,两者是对立的,不能同时使用。 这里使用了除定时器章节中所使用的寄存器外,还添加了 捕获/比较模式寄存器 TIMx_CCMRx 捕获/比较使能寄存器 TIMx_CCERx 捕获/比较寄存器 TIMx_CCRx2.1 捕获/比较模式寄存器 TIMx_CCMR2 因为这里使用的是 TIM2_CH2 作为输出,所以介绍 TIM2_CCMR2,其它的类似设置,详细内容请见 STM8S 微控制器参考手册。 通道可用于输入(捕捉模式)或输出(比较模式),通道的方向由对应的 CC2S定义。该寄存器其它为的作用在输入和输出模式不同。OCxx 描述了通道在输出模式下的功能,ICxx 描述了通道在输入模式下的功能。因此必须注意,同一位在输出和输入模式下功能是不同的。 这里我们主要说明输出模式,也就是 PWM 模式。输出模式为:OC2M:输出比较 2 通道模式 000:冻结 001:匹配时设置通道 2 为有效电平 010:匹配时设置通道 2 为无效电平 011:翻转。 100:强制为无效电平 101:强制为有效电平 110:PWM 模式 1。 向上计数时,一旦 TIMx_CNT TIMx_CCR1 时通道 2 为有效电平,否则无效 向下计数时,一旦 TIMx_CNT =TIMx_CCR1 时通道 2 有无效电平,否则有效 111:PWM 模式 2. 向上计数时,一旦 TIMx_CNT TIMx_CCR1 时通道 2 为无效电平,否则有效 向下计数时,一旦 TIMx_CNT =TIMx_CCR1 时通道 2 有有效电平,否则无效 OC2PE:输出比较 2 预装载使能,PWM 模式下一定要使能 0:禁止预装载使能,可随时写入 TIMx_CCR2 寄存器,并且新写入的数据立即生效 1:开启预装载使能,读写操作仅对预装载寄存器操作。 CC2S:捕获/比较 2 选择。这里定义了通道的方向,及输入脚的选择 00:CC2 通道配配置为输出 01:CC2 通道被配置为输入,IC2 映射

文档评论(0)

gangshou + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档