一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

3天內(nèi)不再提示

使用nRFF54L15初始化一個SPI

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

掃碼添加小助手

加入工程師交流群

【NCS隨筆】
NCS使用了Zyphyr操作系統(tǒng),以及設備樹的概念,所以有許多客戶對于不了解,今天copy一個SPI初始化的例程,給讀者看

Nordic官方課程

官方已經(jīng)寫了一個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

添加需要的內(nèi)容

&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函數(shù)

/* SPI 描述結(jié)構(gòu)體 */
#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發(fā)送命令
 */
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;
}

邏輯分析儀顯示數(shù)據(jù)沒有問題

image.png

使用nRFX庫

還有一個使用舊的nRF52_SDK庫的辦法,可以繞過zephyr的設備樹和API,其實zephyr底層也是調(diào)用nRF庫

宏配置

CONFIG_NRFX_SPIM22=y

&spi22 {
    status = "okay";
    compatible = "nordic,nrf-spim";
    pinctrl-0 = < &spi_dummy >;
};
最后一如既往的到了臭不要臉環(huán)節(jié),作為一名精通Nordic硬件設計和軟件開發(fā)的FAE,你的點贊、收藏和評論是對我最大的支持,有問題多多指教,如果有需要Nordic開發(fā)板、Nordic的芯片以及Nordic技術支持的可以在個人資料獲取我的聯(lián)系方式,感謝讀者支持!

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • SDK
    SDK
    +關注

    關注

    3

    文章

    1074

    瀏覽量

    47954
  • Nordic
    +關注

    關注

    9

    文章

    208

    瀏覽量

    48020
  • Zephyr
    +關注

    關注

    0

    文章

    37

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

    PTR54L15:專為AIoT應用設計的革命性低功耗無線多協(xié)議模組

    PTR54L15系列無線模組,基于Nordic新代nRF54L15 SoC平臺,集超低功耗、多協(xié)議支持、高性能邊緣計算于體,為智能家居、工業(yè)自動
    的頭像 發(fā)表于 06-24 11:16 ?130次閱讀

    SD卡初始化初始化后再次初始化時會失敗,是什么原因?怎么解決?

    使用的是stm32F407驅(qū)動32G的tf卡,使用的SPI模式。第次上電時,卡識別初始化能通過,但是再keil調(diào)試時復位,再運行到
    發(fā)表于 06-20 07:21

    深入比較nRF52832和Nordic新的產(chǎn)品nRF54L15參數(shù)對比

    的:nRF54L15是Nordic最新的BLE芯片,它由nRF52832升級而來用以下表格做一個參數(shù)的對比 型號 nRF52832 nRF54L15 內(nèi)核 Contex -M4 Contex -M33&
    發(fā)表于 03-26 22:28

    深入比較nRF52832和Nordic新的產(chǎn)品nRF54L15參數(shù)對比

    的:nRF54L15是Nordic最新的BLE芯片,它由nRF52832升級而來 用以下表格做一個參數(shù)的對比 型號 nRF52832 nRF54L15 內(nèi)核 Contex -M4 Contex -M33&
    發(fā)表于 03-10 23:54

    AFE5805是否需要初始化,是不是不通過SPI接口初始化芯片就發(fā)熱比較嚴重?

    請問下AFE5805是否需要初始化,是不是不通過SPI接口初始化芯片就發(fā)熱比較嚴重?
    發(fā)表于 01-14 07:28

    EE-359:ADSP-CM40x啟動時間優(yōu)化和器件初始化

    電子發(fā)燒友網(wǎng)站提供《EE-359:ADSP-CM40x啟動時間優(yōu)化和器件初始化.pdf》資料免費下載
    發(fā)表于 01-13 16:33 ?0次下載
    EE-359:ADSP-CM40x啟動時間優(yōu)化和器件<b class='flag-5'>初始化</b>

    EE-88:使用21xx編譯器在C中初始化變量

    電子發(fā)燒友網(wǎng)站提供《EE-88:使用21xx編譯器在C中初始化變量.pdf》資料免費下載
    發(fā)表于 01-13 15:54 ?0次下載
    EE-88:使用21xx編譯器在C中<b class='flag-5'>初始化</b>變量

    STM32F407 MCU使用SD NAND?不斷電初始化失效解決方案

    STM32F407微控制器單元(MCU)與SD NAND的結(jié)合提供了強大的存儲解決方案。然而,不斷電初始化失效問題可能會導致系統(tǒng)穩(wěn)定性和數(shù)據(jù)完整性受損。我們將STM32F407與SD NAND集成時可能遇到的初始化問題,并提供專業(yè)的解決方案。
    的頭像 發(fā)表于 12-11 10:51 ?892次閱讀
    STM32F407 MCU使用SD NAND?不斷電<b class='flag-5'>初始化</b>失效解決方案

    segger編譯器初始化問題

    的圖; 2.第二張圖是該變量在文件中的所有操作,第行是初始化,該行代碼在初始化部分最后,執(zhí)行完就是主循環(huán)了; 3.第2,3行也是對變量
    發(fā)表于 12-09 18:06

    ADS54J60初始化無效,輸出亂碼怎么解決?

    hardware reset by pulsing pin 48 (low → high → low))之前,8lane收到的都是0,初始化后的數(shù)據(jù)現(xiàn)狀和上面的差不多,似乎是對ADC配置并沒有生效,但是
    發(fā)表于 11-28 08:16

    基于旋轉(zhuǎn)平移解耦框架的視覺慣性初始化方法

    精確和魯棒的初始化對于視覺慣性里程計(VIO)至關重要,因為不良的初始化會嚴重降低姿態(tài)精度。
    的頭像 發(fā)表于 11-01 10:16 ?913次閱讀
    基于旋轉(zhuǎn)平移解耦框架的視覺慣性<b class='flag-5'>初始化</b>方法

    TMS320C6000 McBSP初始化

    電子發(fā)燒友網(wǎng)站提供《TMS320C6000 McBSP初始化.pdf》資料免費下載
    發(fā)表于 10-26 10:10 ?1次下載
    TMS320C6000 McBSP<b class='flag-5'>初始化</b>

    如何在i.MX RT微控制器上初始化LWIP協(xié)議棧

    在i.MX RT微控制器上初始化LWIP協(xié)議棧是復雜但有趣的過程,它涉及多個步驟和關鍵組件的配置.
    的頭像 發(fā)表于 10-12 11:48 ?771次閱讀
    如何在i.MX RT微控制器上<b class='flag-5'>初始化</b>LWIP協(xié)議棧

    AFE030 SPI初始化不成功的原因?怎么解決?

    。我們確信初始化數(shù)據(jù)已經(jīng)從MCU(MKE02Z64)通過其SPI接口發(fā)出(參見后面的波形圖)。我們的目的是配置AFE030使用Two-Wire機制工作在PWM模式,但是 將MCU的
    發(fā)表于 08-07 08:18