初體驗—NXP S32K312 系列核心板之環境搭建以及I/O的使用教程

關鍵字 :NXPS32K3系列s32k312nxpipled開發板

一、前言

時間飛逝一個月過去了,上個月申請的板子到手了,在此非常感謝大大通給了這次機會,有一說一這塊快發板相當的漂亮。對了,盒子裡面還有一顆線,哈哈哈,應該是提供使用JTAG下載的。Ps:板子上面自帶一個下載器,唯一的不足就是板載的接口是micro usb不是type c,並且該接口不能供電只能通過DC接口供電。

本開發板採用32位Arm®Cortex®-M7 S32K3 MCU,頻率最高可達 160MHz。提供單核模式、HSE安全引擎、OTA支持、高級連接和低功耗模試,集成 ARM Cortex-M0+ 內核的 HSE-B 硬體信息安全加密模塊。最高 100Mbps 以太網 (TSN),最多 6 路 CAN FD,支持多路 LIN 接口、SAI 和 I2S 音頻接口。支持用於電機控制的 eMIOS、BCTU、LCU 等外設模塊。

二、環境搭建

1、下載S32 Design Studio for S32 Platform以及晶片手冊(好像是eclipse IDE的變種)

     1.1  IDE:鏈接

     這裡需要注意一點安裝的時候會彈出下面圖片的提示需要激活碼。

      

你點擊上面的鏈接進入下載的頁面之後那裡有一個選項點擊中間的License Keys然後複製Code。

       1.2、晶片手冊:鏈接

2、安裝SDK

通過網盤分享的文件:SW32K3_4.4_R21-11_3.0.0_D2303_DS_updatesite.zip

鏈接: https://pan.baidu.com/s/1e5440HkaKh5YXpzTy2kdTw 提取碼: 6daf

由於NXP官網資料繁多,這邊的話我就先存百度雲網盤裡面了。在百度網盤下載之後打開我們下好的IDE按照下圖順序點擊:

進入後點擊ADD—Archive,等待即可。

到此就結束了。當然你還可以參考NXP官網搭建教程:鏈接

三、創建模板工程



工程名自行修改


點擊SDKs旁邊...選擇剛剛的SDK隨機點擊NEXT即可

成功的話就有一個空的工程出現



四、I/O操作接口介紹

在使用其他ARM內核單片機操作I/O口時,都需要通過一個函數傳入對應I/O口配置,這裡也一樣。

1、初始化API

Siul2_Port_Ip_PortStatusType Siul2_Port_Ip_Init(uint32 pinCount,const Siul2_Port_Ip_PinSettingsConfig config[])

 pinCount:傳入的引腳數量,表示要初始化的GPIO引腳的總數。

config:一個指向配置數組的指針,包含每個引腳的配置選項(如引腳方向、驅動電平等)。

其中Siul2_Port_Ip_PinSettingsConfig 結構體是用於配置硬體引腳的一些參數。這個結構體包含了對埠引腳進行詳細設置的各種欄位,例如拉電阻、復用、輸出緩衝、輸入緩衝等配置,詳細可以自行前往對應函數查看。

2、I/O操作API

2.1 輸出

2.1.1 void Siul2_Dio_Ip_TogglePins( Siul2_Dio_Ip_GpioType * const base,Siul2_Dio_Ip_PinsChannelType pins)

作用:切換指定輸出引腳的狀態。如果某個引腳的位在參數 pins 中為 1,該引腳的狀態會被切換(從高電平變為低電平,或者從低電平變為高電平);而如果某個引腳的位為 0,狀態則不會發生變化。

如Siul2_Dio_Ip_TogglePins(base, 1<<led_pins);這就是將led_pins置一

2.1.2 Siul2_Dio_Ip_WritePin(Siul2_Dio_Ip_GpioType * const base,Siul2_Dio_Ip_PinsChannelType pin,Siul2_Dio_Ip_PinsLevelType value)

 

作用:將指定的引腳設置為低電平('0')或高電平('1')。

如Siul2_Dio_Ip_WritePin(base, led_pins, 0);這就是將led_pins置0

 

2.1.3 其他

Siul2_Dio_Ip_WritePins(Siul2_Dio_Ip_GpioType * const base,Siul2_Dio_Ip_PinsChannelType pins)

Siul2_Dio_Ip_SetPin(Siul2_Dio_Ip_GpioType * const base,Siul2_Dio_Ip_PinsChannelType pins)

......更多請前往API函數裡面查看

 2.2 輸入

2.2.1 Siul2_Dio_Ip_ReadPin(const Siul2_Dio_Ip_GpioType * const base,Siul2_Dio_Ip_PinsChannelType pin)

作用:讀取指定 GPIO 引腳的當前輸入值。只有被配置為輸入的引腳會返回有意義的值。該函數返回一個 Siul2_Dio_Ip_PinsLevelType 類型的值,表示引腳的電平狀態,0 表示低電平,1 表示高電平。

如:Siul2_Dio_Ip_PinsLevelType pinState = Siul2_Dio_Ip_ReadPin(base, key_pin);讀取key_pin的值。

2.2.2 其他

Siul2_Dio_Ip_ReadPins(const Siul2_Dio_Ip_GpioType * const base);



五、代碼編寫

如果採用上面提供的sdk的編程的話,那麼io口的配置我們可以和cubemx一樣進行圖形化編程。我們在新建的工程項目裡面點擊這個mx結尾的文件即可進入配置頁面。翻閱本次開發版的的原理圖可知

板載的rgb燈珠分別對應的是GPIOB的8、9、10,需要的是高電平才能啟動點亮。如圖到對應IO配置為輸出。

配置完成後。可以自行打上標籤和標識符方便編程,注意這裡的標識符和標籤其實就是相當於宏定義。


配置完之後點擊更新源代碼。

更改主函數代碼如下:

#include "Mcal.h"

#include "Siul2_Port_Ip.h"

#include "Siul2_Dio_Ip.h"

int main(void)

{

Siul2_Port_Ip_Init(NUM_OF_CONFIGURED_PINS0,g_pin_mux_InitConfigArr0);

for(;;)

{

Siul2_Dio_Ip_TogglePins(LED_BULE_PORT, (1 << LED_BULE_PIN));

}

return 0;

}

編譯下載即可(在這裡下載的話,我是使用keil下載的,利用編譯出來的hex文件欺騙下載詳情怎麼使用的話可以看一看視頻)

結果:

 

六、心得

第一次體驗NXP的晶片。怎麼說呢剛開始挺折騰人的。大概折騰了兩三天才折騰明白。不過成就感還是滿滿的,雖然這一次只是點了個燈,後面的話將一次給大家寫測評評一下那個串口還有板載的觸摸以及常用的硬體接口當然有機會的話再給大家講一下CAN。對了,由於篇幅原因,io口的輸入我放到視頻裡面了,大家可以去b站看一下:https://b23.tv/ZnTanZW

此文章來自“S32K312 開發板評測活動”測評者:付楚楚




歡迎在視頻下方留言評論,我們會及時回復您的問題。

如有更多需求,歡迎聯繫大聯大世平集團 ATU 部門:atu.sh@wpi-group.com   作者:WPIg

更多資訊,請掃碼關注我們!

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論