本文將透過在S32DS中導入官方的Emios範例程式並進行適配,實現開發板LED的控制。透過這個專案,我們將了解開發板Emios模組的使用方法。
軟體環境
- S32DS 用於 S32 工作環境
- S32K3 RTD AUTOSAR 4.4 SDK
硬體環境
- Knight S32K312 評估板
- J-Link Debug 燒錄器
打開S32DS,點擊「File」→「New」→「S32DS Project from Example」,在彈出的對話框中選擇「S32K3 RTD AUTOSAR 4.4 2.0.1 D2207 Example Projects」,然後在下方找到「PWM S32K3xx Examples」,選擇「Emios_Pwm_Ip_Example_S32K312」,點擊「Finish」完成專案匯入。
雙擊打開專案資料夾下的“Emios_Pwm_Ip_Example_DS.mex”,進入專案配置頁面。
按照之前部落格文章的步驟,將晶片封裝改為S32K312 100pin以適配Knight評估板,此步驟略過。此時配置頁面會出現錯誤。首先在引腳頁面會報PTA29錯誤,可能是因為100pin封裝沒有此引腳,或者功能不正確。我們可以將其刪除。
然後剩下PTB12、PTB16,分別是原封裝的兩個eMIOS引腳,一個作為基準MasterBus,可以理解為reference source;另一個則是原開發板的LED燈引腳。我們可以刪除PTB16,改為Knight評估板的藍燈PTB8,選擇最後一個複用功能 eMios_1:ch_h,15。
此時尚未解決全部錯誤,轉到外設頁面,可以看到Emios相關有兩個模組:Emios_Mcl_Ip_1和Emios_Pwm_1。前一個模組即為PTB12作為MaserBus的配置模組,後一個是我們主要關注的,可以進行配置修改的PWM輸出的模組。
打開第二個模組Emios_Pwm_1。在Emios Instance部分,我們也需要刪除第一個配置Emios_0,因為原專案設定了兩個輸出,我們只需要一個輸出PTB8(Emios_1,ch15)。
刪除前
刪除後
刪除後我們只需要修改Emios的Channel Id為CH_15就可以了。此時更新原始碼,就不會有錯誤了。
回到專案程式碼頁面,main.c檔案。這個範例中,我們將原本的CH4、CH12改為了CH15,且CH12和CH15都屬於同一個模組Emios_1,所以我們可以註解掉所有包含CH4的程式碼,並將CH12修改為CH15。
定義增加CH15:
註解CH4相關程式碼,將CH12替換為CH15:
此時,我們專案的 while 迴圈裡還不是我們想要的呼吸燈函數,但可以看出我們可以透過更改 PWM 的 dutyCycle 來改變 LED 燈的亮度。在這裡,我們可以用自己的呼吸燈函數替換掉原有的 while 迴圈。
編譯程式並燒錄到評估板後,可以看到藍燈進入呼吸模式,大功告成!
當然,呼吸的快慢,以及更加順暢的呼吸效果,都可以透過修改參數來實現,這裡就不多贅述了。
文章來自「S32K312 開發板評測活動」測評者:阚準
歡迎在博文下方留言評論,我們會儘快回覆您的問題。
如有更多需求,歡迎聯繫大聯大世平集團 ATU 部門:atu.sh@wpi-group.com 作者:WPIg
更多資訊,請掃碼關注我們!

評論