基本的なタイマーSTM32F103ZET6

1、タイマー分類

  8つのタイマーのSTM32F103ZET6の合計、それらは:TIM1〜TIM8。基本的なタイマー、汎用タイマーとタイマー高へのSTM32タイマー。

  TIM6、TIM7基本的なタイマー。ベーシック・タイマは、16ビット・タイマ、タイマのみ基本的なタイミング機能、外部IOポートをカウントアップされるので、何チャネル捕捉と比較​​されていません。

  TIM2、TIM3、TIM4、TIM5は、汎用タイマです。一般的なタイマーは、16ビットタイマかもしれカウントダウンし、カウントアップされます。汎用タイマは、それぞれが4つの一般的な目的は、外部IOポートをタイマ、インプットキャプチャ、アウトプットコンペアタイミングもよいです。

  TIM1、TIM8は高いタイマーです。高い缶タイマは、16ビットタイマかもしれカウントダウンし、カウントアップされています。より高いタイマは、インプットキャプチャ、アウトプットコンペアタイミングもよく、出力三相モータは、それぞれ高いタイマーが8つの外部IOポートを有し、相補的な信号であってもよいです。

  次のようにタイマーの分類は以下のとおりです。

2、基本的なタイマー

  基本的なタイマーは、外部IOポートではないので、それだけでタイミング機能です。

  基本的なタイマーは、基本的なタイマーのみカウントアップすることができますことを、カウントアップすることができます。

  次のように基本的なタイマ機能図です。

  関数は、図1で見ることができ、内部クロックから基本TIMxCLKタイマークロックは、APB1プリスケーラ後の内部クロックを提供します。APB1バスタイマクロックとの基本的な関係を次のように:

    • APB1プリスケーラが1である場合、クロックタイマはAPB1バスクロックと実質的に等しいです。
    • APB1プリスケーラが1でない場合は、クロックタイマは2倍の周波数分割後APB1バスクロックを介して実質的に等しいです。

  例えば、バスクロックを介しAPB1が36MHzの後、2で除算され、次いで、計時タイマは、実質的に72MHZ3(36 * 2)です。

  図2は、基本的なタイマカウンタを駆動するために、プリスケーラの機能図、内部プレ分周器の分周クロックからのクロックです。プリスケーラ基本タイマ16ビットプリスケーラであり、プリスケーラは計時タイマを分割1と65536の間の任意の数とすることができます。それは次のように計算されます。

  タイマ・クロック= APB1 /(プリスケーラ+1)からクロック

  功能图中的3是一个16位的计数器,该计数器能能向上计数,最大计数值位65535。基本定时器的计数器从0开始向上计数,当计数器的值与自动重装载寄存器相等时产生更新事件,并清零从头开始计数。

  功能图中的4是一个16位的自动重装载寄存器。该寄存器装着计数器能计数的最大数值。当基本定时器的计数器计数到这个值的时候,如果使能了中断。定时器就会产生溢出中断。

3、定时器的时间计算

  基本定时器每计数一次所经过的时间为:

  Time = (PSC + 1)/ TIMxCLK(us)

  PSC是定时器的分频系数,TIMxCLK是内部时钟。

  基本定时器的计数次数由自动重装载寄存器决定的,基本定时器的计数器从0开始向上计数,当计数器的值与自动重装载寄存器相等时,产生溢出。所以基本定时器的溢出时间计算公式如下:

  Time = (PSC+1)*(ARR)/ TIMxCLK(us)

  ARR是自动重装载寄存器的值。

  假设基本定时器TIMxCLK = 72MHZ,PSC = 71,ARR = 1000,那么定时器的溢出时间为:

  Time = (71+1)*1000/72 = 1000(us) = 1(ms)

4、基本定时器的配置流程

  使能基本定时的时钟,不然无法使用定时器。

  设置基本定时器的预分频系数和自动重装载寄存器值,通用定时器和高等定时器还要设置计数方向,因为基本定时器只能向上计数,所以不用设置。

  开启基本定时器。

  通过NVIC配置基本定时器的中断。

  编写基本定时器的中断服务函数,在中断服务函数中,可以通过基本定时器的状态寄存器的值来判断此次产生的中断属于什么类型。

おすすめ

転載: www.cnblogs.com/h1019384803/p/11032712.html