这几天一直在看stm32 的通用定时器, 对定时器的输出比较很是迷惑,主要有以下几点:
1、输出模式有 Timing、Active、InActive、Toggle 等几种模式, 这几种模式有什么区别? 或者说各有什么用途?
2、 根据TIMx_CCMR 中的OC1M 模式选择位(3位)配置,可以选择不同的输出模式(对应1中的),手册上说当计数
器与比较寄存器中值匹配时,可以对 OC1REF 进行保持,强制为高或低,翻转的动作 ;
问题是:OC1REF是什么? 手册上指出:OCx状态=OCxREF + 极性
这里的极性(通过初始化函数配置为高或者低)具体指什么? 输出管脚的状态是否就是Ocx的状态? 按照这个式子,只要极
性设置为高,OCx 不就一直为高吗?
比如通道设置为 Active 模式,极性设置为High ; 当匹配时,输出管脚的状态怎么判断?
(我的理解: 如果OCx的状态就是输出管脚的状态,
(1)通道设置为 Active模式-----匹配时强制OC1REF为高;
(2)极性配置为High ;
所以OCx = 高!即输出管脚就一直为高电平!
这样理解肯定是不对的,结果是输出的是方波。 但是就是想不通 |