STM32通用定时器(时钟选择,模式选择)
把两者组合在一起完成一些功能了。 总结一下,STM32的时钟选择比较特别,在SFR中关于时钟选择配置位不再一块,不是说两个位在一起00、01、11就选择了而是由 SMCR中SMS和ECE 来控制,这样感觉可以吧内部时钟与外部模式2同时打开(SMS:000,ECE:1),也可以吧外部模式1和外部模式2同时打开(SMS:111,ECE:1),实际上上述两种方式用的都是外部时钟2. 四、捕获比较通道 这就是我说的定时器三个组成部分中的两个部分了。核心是那个捕获比较寄存器。 输出上的特色是不直接输出,而是有个OC1REF,这样可以定义高有效还是低有效,输出自己需要的有效电平。 TIMER-1:定时器上溢,中断中取反LED. 现象:LED 周期2秒闪烁。 相关寄存器: CKD[1:0] ARPE CMS[1:0] DIR OPM URS UDIS CEN ARR PSC 接下来的4个实验跟输出通道有关系 实验2 TIMER-2:强置输出 现象:LED 常亮 例子比较简单关键是配好输出通道 CCER 15 14 CC4P CC4E CC3P CC3E CC2P CC2E CC1P CC1E CCMR(输出) OC2CE OC2M[2:0] OC2PE OC2FE CC2S OC1CE OC1M[2:0] OC1PE OC1FE CC1S 将通道1配为输出,输出使能,输出极性选择好,输出模式选择好就可以了。在V100实验板上PC6-9接了LED,刚好对应着TIMER3重映射后的输出,注意程序里的AFIO函数。 实验3 TIMER-3:输出比较 现象:LED 2秒的周期闪烁。 跟上个实验配置大致相同,只是把输出模式改为翻转功能,并且CRR要配好,当CRR=CNT时翻转输出。 实验4 TIMER-4:PWM输出 现象:输出4种不同占空比的PWM波,4个LED亮度不同。 实验5 TIMER-7:单脉冲方式 现象:LED 只闪烁一次。 将上个实验加一句话 TIM_SelectOnePulseMode(TIM3, TIM_OPMode_Single); 就是这个实验。其实手册上关于此实验的本意是由一个外部触发使能计数器,然后产生一个脉冲的,这里还没涉及从模式所以简化处理。 涉及寄存器 CKD[1:0] ARPE CMS[1:0] DIR OPM URS UDIS CEN 接下来再做两个输入的实验 实验6 TIMER-5:输入捕获模式。 现象:通过V100 的JOYSTICK键的SELECT键进入捕获,硬件仿真看CRR的值。 首先是基本的配置:ARR的值、时钟PSC、采样CKD、计数方式。 然后配置输入通道。 选择输入捕获模式、输入极性、把T1配到CC1上、选好输入的滤波跟分频,就可以了。 讲下输入滤波功能,在此实验中Fdts=CK_INT/2,Fsample=Fdts/4,所以定时器时钟为2K,所以采样周期为4ms。才8次的话周期小于32ms的干扰会滤除。 相关寄存器 CKD[1:0] ARPE CMS[1:0] DIR OPM URS UDIS CEN PSC ARR CCMR1(输入) IC2PSC[1:0] CC2S[1:0] IC1F[3:0] IC1PSC[1:0] CC1S[1:0] CCER 15 14 CC4P CC4E CC3P CC3E CC2P CC2E CC1P CC1E TIMER-6:PWM输入 现象:由TIMER3输出通道1产生一路周期2秒占空比50%的PWM波,飞线到TIMER4的输入通道1,有TIMER4来测量该PWM得周期和占空比。 在做实验之前引入三种从模式控制:复位、触
STM32通用定时器时钟选择模式选 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)