Tim

BaseTIM
  1. BaseTIM(TIM6&TIM7) 没有CKD(clock division),否则会出现hardfault. 同时没有Repeatation 和Counter Mode.
  2. BaseTIM 有一个DMA中断请求应该源自TIM6_DAC_IRQn中的DAC.
  3. BaseTIM 可以设置OnePulse Mode.
    •  TIM_SelectOnePulseMode(TIM6, TIM_OPMode_Single)
  4. 遇到的问题是输出频率过高时好像不能在示波器(TDS2012)上正常显示

GeneralTIM 
  1. TIM3&TIM4 -> 16bits, TIM2&TIM5->32bits.
  2. 支持增量编码器和霍尔传感器(Supports incremental (quadrature) encoder and hall-sensor circuitry for positioning purposes)。
  3. Trigger input for external clock or cycle-by-cycle current management(外部时钟触发输入或逐周期电流管理).
  4. 寄存器读写规则:写入只能按寄存器的位数来(32bits or 16 bits),读出可任意(8 or 16 or 32)。
  5. TIMx_CR2[6:4]->MMS[2:0]用以主模式下定时器同步时选择从定时器的触发方式。
  6. 每条语句都需要单片机的以时钟周期去执行,这是一种思维。
  7. 往预装载寄存器里写入新值时,先失能UEV(by UDIS),以免更新影子寄存器。
  8. Flag一般需要软件清零(但也存在读寄存器就可清零的情况),最好是中断服务程序的第一句就清除。
  9.  如下图,APB1= AHB1/4=168M/4= 21M,当预分频值为1时,APBx_TIM_CLK=APBxCLK=21M, 不为1时, APBx_TIM_CLK=APBxCLK * 2=42M,这其实间接保证了Timer的最大频率为21M。      
  10. 时钟来源可以选内部时钟、定时器内部分频、定时器外部触发、其他外部触发信号
  11. 对于输出比较和输入捕获的理解还不够深,或许得再看一遍。
  12. 改变工作模式时,最好先关闭相应的寄存器及功能,以免修改不成功或者出错误,这是一种思维。
  13. STM32库函数为有时一个寄存器写了几个函数接口,看起来很方便,其实冗余。
  14. 使用定时器的PWM模式只能在4个通道产生频率相同但占空比不同的输出信号,使用定时器的输出比较模式可以在4个通道上产生频率不同,占空比也不同的输出信号。
  15. 死区时间控制?
  16. 电容触摸按键
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值