【NCS隨筆】
NCS使用了Zyphyr操作系統,以及設備樹的概念,所以有許多客戶對于不了解,今天copy一個SPI初始化的例程,給讀者看
Nordic官方課程
官方已經寫了一個SPI的課程,寫的挺詳細的可以,也可以看這個課程
https://academy.nordicsemi.com/courses/nrf-connect-sdk-intermediate/lessons/lesson-5-serial-peripheral-interface-spi/topic/exercise-1-10/
配置宏定義
在 prj.conf 使能SPICONFIG_SPI=y
添加overlay
新建一個nrf5l15dk_nrf54l15_cpuapp.overlay
添加需要的內容
&pinctrl {
spi22_default_alt: spi22_default_alt {
group1 {
psels = < NRF_PSEL(SPIM_SCK, 1, 12) >,
NRF_PSEL(SPIM_MISO, 1, 10) >,
NRF_PSEL(SPIM_MOSI, 1, 8) >;
};
};
spi22_sleep_alt: spi22_sleep_alt {
group1 {
psels = < NRF_PSEL(SPIM_SCK, 1, 12) >,
NRF_PSEL(SPIM_MISO, 1, 10) >,
NRF_PSEL(SPIM_MOSI, 1, 8) >;
low-power-enable;
};
};
};
&gpio2 {
status = "okay";
};
&spi22 {
status = "okay";
pinctrl-0 = < &spi22_default_alt >;
pinctrl-1 = < &spi22_sleep_alt >;
pinctrl-names = "default", "sleep";
overrun-character = < 0x00 >;
cs-gpios = < &gpio1 14 GPIO_ACTIVE_LOW >;
easydma-maxcnt-bits = < 0x400 >;
dut_spi_dt: test-spi-dev@0 {
compatible = "vnd,spi-device";
reg = < 0 >;
spi-max-frequency = < 8000000 >;
};
};
main函數
/* SPI 描述結構體 */
#define SPI_OP (SPI_WORD_SET(8)|SPI_TRANSFER_MSB)
#define SPIM_OP (SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB |SPI_WORD_SET(8))
static struct spi_dt_spec spim = SPI_DT_SPEC_GET(DT_NODELABEL(dut_spi_dt), SPIM_OP, 0);
/**
* @brief st7735發送命令
*/
static void st7735_send_command(uint8_t command)
{
// TFT_DC_COMMAND;
struct spi_buf tx_spi_buf = { .buf = (void *)&command, .len = 1 };
struct spi_buf_set tx_spi_buf_set = {.buffers = &tx_spi_buf, .count = 1 };
int ret = spi_write_dt(&spim, &tx_spi_buf_set);
if (ret < 0) {
LOG_ERR("SPI write data failed: %d", ret);
}
}
int main(void)
{
printf("Hello World! %sn", CONFIG_BOARD_TARGET);
/* 檢查設備是否準備好 */
if (!spi_is_ready_dt(&spim)) {
LOG_ERR("spi is not ready");
return false;
}
while (1)
{
st7735_send_command(0x55);
k_sleep(K_MSEC(500));
printf("mr_st7735_send_command:0x55n");
}
return 0;
}
邏輯分析儀顯示數據沒有問題

使用nRFX庫
還有一個使用舊的nRF52_SDK庫的辦法,可以繞過zephyr的設備樹和API,其實zephyr底層也是調用nRF庫
宏配置
CONFIG_NRFX_SPIM22=y
&spi22 {
status = "okay";
compatible = "nordic,nrf-spim";
pinctrl-0 = < &spi_dummy >;
};
最后一如既往的到了臭不要臉環節,作為一名精通Nordic硬件設計和軟件開發的FAE,你的點贊、收藏和評論是對我最大的支持,有問題多多指教,如果有需要Nordic開發板、Nordic的芯片以及Nordic技術支持的可以在個人資料獲取我的聯系方式,感謝讀者支持!
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
SDK
+關注
關注
3文章
1101瀏覽量
51726 -
Nordic
+關注
關注
9文章
257瀏覽量
49023 -
Zephyr
+關注
關注
0文章
58瀏覽量
6580
發布評論請先 登錄
相關推薦
熱點推薦
MCU工程初始化,到底該不該交給工具?
背景 工程初始化重復性高,但出錯成本大。工程師常問:交給工具是不是會丟失掌控? 工具可做的事 時鐘樹、引腳復用、外設配置 工程生成、代碼模板套用 參數校驗和約束檢查 工程師仍需做的事 特殊業務邏輯
EtherCAT總線初始化步驟
EtherCAT(Ethernet for Control Automation Technology)是一種高性能的工業以太網通信協議,廣泛應用于工業自動化領域。其初始化過程是確保系統穩定運行
NRF54L15的NORDIC芯片,adc的內部參考電壓
進一步確認:
關鍵補充說明
參數可靠性來源
技術實踐驗證:開發者在使用 Zephyr API 或 nrfx 驅動初始化 NRF54L15 的 ADC 時,明確標注內部參考電壓為 0.9V,且需
發表于 11-17 15:46
nRF54L15初始化SPI
一、以下是基于NCS3.0.2的SPI初始化示例
1.1、主機
設備樹
此配置將 SPI21 配置為主機,SCK/MOSI/MISO/CS 分別對應 P1.8/P1.12/P1.11/
發表于 08-26 00:31
GraniStudio:IO初始化以及IO資源配置例程
IO資源配置.gsp文件,點擊打開,完成導入。 2.功能說明 實現連接格拉尼控制器IO塊以及配置輸入輸出IO點。 2.1通過初始化IO算子連接格拉尼控制器IO塊,導入工程自動進行連接。 2.2 通過IO配置算子輸出配置的IO表。 第一次使用GS軟件時操作步驟如下: (1)
GraniStudio:初始化例程
說明 通過初始化運控板卡算子連接格拉尼總線型運控卡,導入工程自動進行連接,此算子為使用運控控制板卡的第一項操作,后續運控算子需引用其輸出板卡對象才可使用。 3.異常處理 當手動執行初始化運控板卡算子出現錯誤時: 查看總線卡與驅動
定義IO初始化結構體
由上述IOPORT相關功能的枚舉類型我們可以知道,在對IOPORT模塊進行初始化時需要根據情況配置它們。因此我們定義一個IOPORT初始化的結構體類型IOPORT_Init_t,它的成
nRF54L15 # 超低功耗無線 SoC
nRF54L15 概述 *附件:nRF54L15_nRF54L10_nRF54L05_Preliminary_Datasheet_v0.9.pdf 特征 128 MHz Arm Cortex-M33
nRF54L15如何初始化GRTC
保持計時功能。這種無縫切換機制確保了系統在各種工作狀態下都能維持精確的時間基準。 超高精度與超長計時范圍 憑借 52 位的計數器寬度和 1 微秒的分辨率,GRTC 創造了令人驚嘆的計時能力。理論上,它可以連續運行 142 年才會發生計數器溢出,這一特性使其特別適合需
PTR54L15系列低功耗無線多協議模組
PTR54L15系列多協議無線模組,基于Nordic新一代nRF54L15平臺打造,以超低功耗、高性能和多協議支持為核心,為智能家居、工業自動化、可穿戴設備等場景提供了
發表于 06-28 21:23
IM 系列設備過載保護機制下界面初始化中斷的底層邏輯與解決方案
一、過載保護機制與界面初始化的關聯基礎 IM 系列設備的過載保護機制是保障設備安全運行的核心功能,其通過傳感器實時采集設備運行參數,如電流、電壓、溫度、系統資源占用率等。一旦這些參數超出預設閾值
SD卡初始化第一次初始化后再次初始化時會失敗,是什么原因?怎么解決?
使用的是stm32F407驅動一個32G的tf卡,使用的SPI模式。第一次上電時,卡識別初始化能通過,但是再keil調試時復位,再運行到
發表于 06-20 07:21
深入比較nRF52832和Nordic新的產品nRF54L15參數對比
的:nRF54L15是Nordic最新的BLE芯片,它由nRF52832升級而來用以下表格做一個參數的對比
型號
nRF52832
nRF54L15
內核
Contex -M4
Contex -M33&
發表于 03-26 22:28
深入比較nRF52832和Nordic新的產品nRF54L15參數對比
的:nRF54L15是Nordic最新的BLE芯片,它由nRF52832升級而來
用以下表格做一個參數的對比
型號
nRF52832
nRF54L15
內核
Contex -M4
Contex -M33&
發表于 03-10 23:54
使用nRFF54L15初始化一個SPI
評論