基於stm32f103 PWM波 的配置問題

2021-09-26 01:41:42 字數 1253 閱讀 6442

usart串列埠,首先tx是作為輸出的,邏輯上輸出的資料都是0或者1,也就是由高低電平來表示,推挽就是能穩定輸出1或者0。而復用,是因為這個io受的是內部的的usart模組來控制,並非是gpio暫存器來控制。至於rx設定為浮空輸入那就很好理解了,首先接收的肯定是要設定為輸入,才能檢測外界的電平,其次,浮空就能收到高和低的電平,也才能分析出0和1.

stm32的定時器是個強大的模組,定時器使用的頻率也是很高的,定時器可以做一些基本的定時,還可以做pwm輸出或者輸入捕獲功能。從系統框架圖下看,名為timx的有八個,其中tim1和tim8掛在apb2匯流排上,而tim2-tim7則掛在apb1匯流排上。其中tim1&tim8稱為高階控制定時器(advanced control timer).他們所在的apb2匯流排也比apb1匯流排要好。apb2可以工作在72mhz下,而apb1最大是36mhz。

當apb1的預分頻係數為1時,這個倍頻器不起作用,定時器的時鐘頻率等於apb1 的頻率;當apb1的預分頻係數為其它數值(即預分頻係數為2、4、8 或16)時,這個倍頻器起作用,定時器的時鐘頻率等於apb1 的頻率兩倍。也就是,當apb1不分頻,tim3的時鐘速度為36mhz,當2分頻是,apb1變成18mhz,但是tim又會倍頻,即tim時鐘等於18*2=36mhz。這裡我們用向上計數的方式,即timx_cnt中的計數值達到timx_arr中的值時,產生中斷,timx_cnt又從0開始計。

110:pwm模式1- 在向上計數時,一旦timx_cnttimx_ccr1時通道1為無效電平(oc1ref=0),否

則為有效電平(oc1ref=1)。

111:pwm模式2- 在向上計數時,一旦timx_cnttimx_ccr1時通道1為有效電平,否則為無效電

平。輸出比較極性的指的是你在比較匹配之後輸出口輸出的極性。

這個函式就是讓你設定有效極性,也就是設定比較輸出的有效電平。你可以設定為高電平有效或者低電平有效。

如果設定為高電平有效,那麼當定時器比較匹配之後,輸出口輸出高電平,否則就反一下。

假設時鐘頻率為48mhz,如果指定預分頻器即tim_prescaler的值為48000(-1),那麼經48000分頻之後的工作頻率就是1000,也就是所謂的1khz。如果再指定計數值即tim_period為1000(-1)的話,恰好就是1秒了。忘記那些計算公式吧,這樣算就很好。

stm32 f103 pwm 深入解析

定時器使用的時鐘源都是timxclk,時鐘源經過psc預分頻器輸入至脈衝計數器timx cnt,基本定時器只能工作在向上計數模式,在過載暫存器timx arr中儲存的是定時器的溢位值。工作時,脈衝計數器timxcnt,由時鐘觸發進行計數,當timxcnt的計數值x等於過載暫存器timxarr中儲存的...

STM32F103 PWM輸出實驗(HAL庫)

1 晶元輸出pwm波形打碼步驟 1.0主函式 int main void 1.1初始化輸出pwm波形的定時器和io口 例程使用定時器1的通道1,輸出在pa8 gpio inittypedef gpio initure hal rcc tim1 clk enable 使能定時器1 hal rcc gp...

STM32F103的PWM電機控制

目錄 選擇tim ch 1 gpio配置輸出 定時器配置 呼叫函式使用 初次易錯點 使用 輸出是首先要看,那個引腳使用可以使用 輸出。高階控制和通用定時器通道引腳分布 高階定時器 通用定時器 tim1 tim8 tim2 tim5 tim3 tim4 ch1 pa8 pe9 pc6pa0 pa15 ...