關於基於STM32中SPWM的軟體實現以及注意點

2021-10-09 02:14:56 字數 1017 閱讀 5045

這幾天在做乙個光伏採集電壓的專案,這裡面就運用到了h式逆變橋,而用到逆變橋,就必然會使用到spwm來調製igbt,再通過低通濾波使該電路產生乙個正弦波。而這個專案的重點就是這個spwm的調控,如何調製適合的電壓來是逆變橋輸出正弦波,也是重中之重。

在我這幾天的收集資料以及思考裡,我想到了很多實現spwm的方法,像用兩個定時器來實現,乙個產生波形,另乙個捕獲比較產生占空比。這些都是實踐之後可以實現的了,但後來了解了專案的需求之後,我最終決定使用定時器1中斷來輸出spwm,原理也和以上方法一樣,這個我就不多說了,需要資料的可以私聊我 。

spwm的產生是較簡單的,比較複雜的就是他的spwm陣列的採集,這個採集點是多少,該如何採集,都是個大問題。
我是採用這個公式結合演算法來編寫的:

重點就是調制度來決定這個占空比的大小,最終能決定正弦波的幅值大小。而以上的變數fb,td分別代表的是想得到的頻率和取樣點。這個公式還能靈活運用,都是可以達到預期效果的。

另外還想說一下之前困擾了我一天的小問題(這個小問題真的是會氣死人,浪費了我很多時間)

部分答案也是在各個論壇看到的:

1.關於stm32的高階定時器–定時器1的中斷使能:

(1)中斷使能時脈衝歸為零就開不了捕獲上公升沿中斷

或許這個是很簡單的問題,但我平日寫**的自信讓我忽略了他,導致我一直找問題的方向都不在定時器的配置上,浪費了我很多時間

(2)定時器1,8中斷服務函式的書寫以及它們的中斷源都是不同的,這個也是值得注意的問題點

還有就是要學會用工具學hal庫,省時又快。

剩下的後期再新增吧,現在專案還在趕工,有什麼經驗後期在分享!!!!!!!

基於STM32的串列埠通訊

序列通訊一般是以幀格式傳輸資料,即一幀一幀的傳輸,每一幀都含有起始訊號,資料資訊以及停止資訊等。資料各個位同時傳輸,速度快,但是占用引腳資源多。eg led1602 資料按位順序傳輸,占用引腳資源少,但是速度相對較慢。一位一位傳輸 bit iic spi 串列埠通訊 單工,半雙工,全雙工 同步通訊 ...

基於STM32的恆流源設計

本設計以stm32f103rct6為主控晶元,利用mos管的恆流區特點,設計恆流源。設計電流範圍為1 300ma。基本原理圖 q2為n溝道mos管,在正常工作情況下,運放與mos管之間構成深度負反饋,使得輸入控制電壓與vr虛短,近似相等。這可以得到負載電流 3.1.電源 電路圖如圖所示 電源由 12...

關於STM32中CAN中斷的使用

如果你用的can引腳是pa11和pa12,接收中斷用can1 rx0 irqn。如果can引腳用的是pb8和pb9,也就是用重定義的引腳,接收中斷用can1 rx1 irqn。由於pa11和pa12也是usb的引腳,所以非互聯型且帶can控制器的微控制器的庫檔案在起名字時用了usb lp can1 ...