STM32高级定时器TIM1的OSSR和OSSIOISXOISXN的作用和区别.pdf

STM32高级定时器TIM1的OSSR和OSSIOISXOISXN的作用和区别.pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STM32高级定时器TIM1的OSSR和OSSIOISXOISXN的作用和区别

浅谈浅谈STM32高级定时器高级定时器TIM1的的OSSR和和OSSI、、OISX,OISXN的的 作用和区别作用和区别 分类: 谈到STM32的高级定时器,可能大家都比较头痛,因为这里面的关系总是纠缠在一起,剪不断理还乱,特别是 OSSR和OSSI位,总感觉模模糊糊,不知所云,借助空余时间,给这几个知识点做一个总结。首先,在STM32中 文参考手册里面提到, OSSR:运行模式下“关闭状态”选择 该位用于MOE=1且通道为互补输出。没有互补输出的定时器中不存在OSSR位 0 :当定时器不工作时,禁止OC/OCN输出(OC/OCN使能信号=0) 1 :当定时器不工作时,一旦CCXE=1或CCXNE=1 ,首先开启OC/OCN并输出无效电平,然后置OC/OCN使能输 出=1 这是stm32手册上的解释,但是很多人也许会有这样的困惑,那何为定时器不工作呢?我的理解就是,定时器的 某个输出通道没有使能输出,打个比方:如果TIM1的通道1 CC1E=1 ,而CC1NE=0 ,此时就是stm32手册上所讲 的“不工作” ,其实说实在话,这个解释个人感觉是不能理解的,不工作很多人会理解为CR1的CEN=0 ;计数器停 止工作,其实这是不正确的。 讲了这么多,大家可能会问,那OSR位到底是干什么的,有什么作用呢?那我们来看这个 1/4 当MOE 1的时候 ,OSSR 1 CCXE 0 CCXNE 1时 ,我们发现本来OCX通道被禁止使能 ,此时的输出状态却是 OCX CCXP,OCX_ EN 1 ,OCX输出被使能了 ,并且输出的电平由CCXP决定 ,只是这种情况下互补输出通道必 须有一个通道被使能 ,也就验证了手册上的描述 1 :当定时器不工作时 ,一旦CCXE 1或CCXNE 1 ,首先开启 OC/OCN并输出无效电平 ,然后置OC/OCN使能输出 1 ,如果互补的两个通道都禁止 ,则输出禁止 ,这就是 OSSR位对整个定时器的影响。 我们可以通过一段程序加以理解 , 2/4 //通过TIM1的CH1输出互补的两个信号 //通过TIM8的CH1输出做刹车信号 void TIM1_configration (void) { GPIO_InitTypeDef GPIO_Init tructure; RCC_APB2PeriphClockCmd (RCC_APB2Periph_TIM1 | RCC_APB2Periph_GPIOA |RCC_APB2Periph_GPIOB, ENABLE); RCC_APB2PeriphClockCmd (RCC_APB2Periph_TIM8 | RCC_APB2Periph_GPIOC, ENABLE); //TIM1: PA8为CH1_OC1 PB13为CH1_OC1N PB12为刹车信号输入端 GPIO_Init tructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init tructure.GPIO_Pin = GPIO_Pin_8; GPIO_Init tructure.GPIO_ peed = GPIO_ peed_10MHz; GPIO_Init(GPIOA, GPIO_Init tructure); GPIO_Init tructure.GPIO_Pin = GPIO_Pin_13; GPIO_Init(GPIOB, GPIO_Init tructure); //PB13和PA8配置为复用推挽输出 GPIO_Init tructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init tructure.GPIO_Pin = GPIO_Pin_12; GPIO_Init(GPIOB, GPIO_Init tructure); //PB12做TIM1_BKIN //TIM8:PC7位OC2输出 用作刹车信号 GPIO_Init tructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init tructure.GPIO_Pin = GPIO_Pin_7; GPIO_I

文档评论(0)

feixiang2017 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档