国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用nRFF54L15初始化一個SPI

TedLee ? 來源:jf_29076475 ? 作者:jf_29076475 ? 2025-06-27 14:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

【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 使能SPI
CONFIG_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;
}

邏輯分析儀顯示數據沒有問題

image.png

使用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
    SDK
    +關注

    關注

    3

    文章

    1101

    瀏覽量

    51726
  • Nordic
    +關注

    關注

    9

    文章

    257

    瀏覽量

    49023
  • Zephyr
    +關注

    關注

    0

    文章

    58

    瀏覽量

    6580
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    PC強實時運動控制():C#的EtherCAT總線初始化(下)

    通過使用配置工具導出ZAR文件進行EtherCAT總線初始化
    的頭像 發表于 02-05 10:00 ?955次閱讀
    PC強實時運動控制(<b class='flag-5'>一</b>):C#的EtherCAT總線<b class='flag-5'>初始化</b>(下)

    MCU工程初始化,到底該不該交給工具?

    背景 工程初始化重復性高,但出錯成本大。工程師常問:交給工具是不是會丟失掌控? 工具可做的事 時鐘樹、引腳復用、外設配置 工程生成、代碼模板套用 參數校驗和約束檢查 工程師仍需做的事 特殊業務邏輯
    的頭像 發表于 01-29 10:18 ?144次閱讀
    MCU工程<b class='flag-5'>初始化</b>,到底該不該交給工具?

    EtherCAT總線初始化步驟

    EtherCAT(Ethernet for Control Automation Technology)是種高性能的工業以太網通信協議,廣泛應用于工業自動領域。其初始化過程是確保系統穩定運行
    的頭像 發表于 12-22 10:10 ?588次閱讀
    EtherCAT總線<b class='flag-5'>初始化</b>步驟

    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)
    的頭像 發表于 08-22 17:34 ?936次閱讀
    GraniStudio:IO<b class='flag-5'>初始化</b>以及IO資源配置例程

    GraniStudio:初始化例程

    說明 通過初始化運控板卡算子連接格拉尼總線型運控卡,導入工程自動進行連接,此算子為使用運控控制板卡的第項操作,后續運控算子需引用其輸出板卡對象才可使用。 3.異常處理 當手動執行初始化運控板卡算子出現錯誤時: 查看總線卡與驅動
    的頭像 發表于 08-22 16:45 ?894次閱讀
    GraniStudio:<b class='flag-5'>初始化</b>例程

    定義IO初始化結構體

    由上述IOPORT相關功能的枚舉類型我們可以知道,在對IOPORT模塊進行初始化時需要根據情況配置它們。因此我們定義IOPORT初始化的結構體類型IOPORT_Init_t,它的成
    的頭像 發表于 07-16 16:26 ?1410次閱讀

    nRF54L15 # 超低功耗無線 SoC

    nRF54L15 概述 *附件:nRF54L15_nRF54L10_nRF54L05_Preliminary_Datasheet_v0.9.pdf 特征 128 MHz Arm Cortex-M33
    的頭像 發表于 07-01 16:57 ?3264次閱讀
    nRF<b class='flag-5'>54L15</b> # 超低功耗無線 SoC

    nRF54L15如何初始化GRTC

    保持計時功能。這種無縫切換機制確保了系統在各種工作狀態下都能維持精確的時間基準。 超高精度與超長計時范圍 憑借 52 位的計數器寬度和 1 微秒的分辨率,GRTC 創造了令人驚嘆的計時能力。理論上,它可以連續運行 142 年才會發生計數器溢出,這特性使其特別適合需
    的頭像 發表于 06-30 09:39 ?761次閱讀

    PTR54L15系列低功耗無線多協議模組

    PTR54L15系列多協議無線模組,基于Nordic新代nRF54L15平臺打造,以超低功耗、高性能和多協議支持為核心,為智能家居、工業自動、可穿戴設備等場景提供了
    發表于 06-28 21:23

    IM 系列設備過載保護機制下界面初始化中斷的底層邏輯與解決方案

    、過載保護機制與界面初始化的關聯基礎 IM 系列設備的過載保護機制是保障設備安全運行的核心功能,其通過傳感器實時采集設備運行參數,如電流、電壓、溫度、系統資源占用率等。旦這些參數超出預設閾值
    的頭像 發表于 06-27 09:58 ?541次閱讀

    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