用网页制作个人网站,互联网建设,市场营销推广策划方案,网站备案号有什么用这次来分享上次没说完的输入捕获的知识点 实验中用到两个引脚#xff0c;一个是通用定时器 TIM3 的通道 1#xff0c;即 PA6#xff0c;用于输出 PWM 信号#xff0c;另一 个是高级控制定时器 TIM1 的通道 1#xff0c;即 PA8#xff0c;用于 PWM 输入捕获#xff0c;实…这次来分享上次没说完的输入捕获的知识点 实验中用到两个引脚一个是通用定时器 TIM3 的通道 1即 PA6用于输出 PWM 信号另一 个是高级控制定时器 TIM1 的通道 1即 PA8用于 PWM 输入捕获实验中直接用一根杜邦线 短接即可 PA6 和 PA8 即可同时可用示波器监控 PA6 的波形看看实验捕获的数据是否正确。 PA6用定时器的输出比较功能输出波形。
PA8用定时器的输入捕获功能捕获波形。 步骤
1.通用定时器产生 PWM 配置
2.高级定时器 PWM 输入配置
3.编写中断服务程序计算测量的频率和占空比并仿真调试看是否一致。
编程的要点主要分成两部分一个是通用定时器的 PWM 信号输出另一个是 PWM 信号输入捕 获。 下面就贴出代码全文跟着我操作可以和我实现一样的效果
1.定时器产生 PWM 配置输出比较
1.1 配置GPIO
由于我们用到的是PA6那么就配置PA6复用推挽输出就行因为他用的不是普通GPIO口的功能而是TIM3_CH1所以要用到复用功能同时开启复用的时钟。 1.2 初始化定时器 1.3 初始化输出比较 最后在最上面加上使能一下TIM3的时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
这样就可以产生50%占空比的波形了周期频率那些由Psc arr来决定
那么现在我们用示波器量一下看看到底是不是50%的占空比 实际测量的确是的。那么下面就开始写输入捕获的代码 2.定时器 PWM 输入配置 1.1 配置GPIO
由于我们用到的是PA8那么就配置PA8但是这次要配置成浮空输入模式 1.2配置中断因为我们要用到捕获和溢出处理中断 中断通道别选错
1.3 初始化定时器 我们可以算出计数器的计数周期为 T72M/721uS,1us*10001MS这个是定时 器在不溢出的情况下的最大计数周期也就是说周期小于 1ms 的 PWM 信号都可以被捕获到转 换成频率就是能捕获到的最小的频率为 1KHZ。 1.4 初始化输入捕获功能 因为是 PWM 输入模式只能使用通道 1 和通道 2 假如我们使用的是通道 1即 TI1输入 的 PWM 信号会被分成两路分别是 TI1FP1 和 TI1FP2两路都可以是触发信号。如果选择 TI1FP1 为触发信号那么 IC1 捕获到的是 PWM 信号的周期IC2 捕获到的是占空比这种 输入通道 TI 和捕获通道 IC 的映射关系叫直连输入捕获结构体的 TIM_ICSelection 要配置为 TIM_ICSelection_DirectTI。如果选择 TI1FP2 为触发信号则 IC2 捕获到的是周期IC1 捕获到的是占空比这种输入通道 TI 和捕获通道 IC 的映射关系叫非直连输入捕获结构体的 TIM_ICSelection要配置为 TIM_ICSelection_IndirectTI。有关输入通道 TI 和捕获通道 IC 的具体映射关系见图输入通道 TI 和捕获通道 IC 的映射图 有直连和非直连两种。 好我们来分析上上面的一大堆术语。 Q:如果选择TI1FP1 为触发信号那么 IC1 捕获到的是 PWM 信号的周期IC2 捕获到的是占空比。这句话怎么理解呢 A点由于上面的输入捕获的配置。当捕获到 PWM 信号的第一个上升沿时产生中断计数器被复位锁存到捕获寄存器 IC1 和 IC2的值都为 0。 B点当下降沿到来时IC2 会捕获对应的是占空比但是会产生中断。 C点当捕获到第二个上升沿时IC1 会捕获对应的是周期而且会再次进入中断这个时间就可以根据 IC1 和 IC2的值计算出频率和占空比。 中断复位函数中我们获取输入捕获寄存器 CCR1 和 CCR2 寄存器中的值当 CCR1 的值不为 0 时说明有效捕获到了一个周期然后计算出频率和占空比。在计算的时候 CCR1 和 CCR2 的值 都必须要加 1因为计数器是从 0 开始计数的。 现在我们全速跑代码看看是否一致还是很准的 全文就是这样非常的简单易懂
以上仅是个人学习笔记若对你有帮助那么最好不过共勉