LL庫實現SPI MDA發送方式驅動WS2812

1,首先打卡STM32CubeMX,配置一下工程,這里使用的芯片是STM32F030F4P6。

?

時鐘

SPI外設

?SPI DMA

下載接口,這個不配置待會下程序后第二次就不好下載調試了。

?工程配置,沒啥說的

?選擇生成所有文件

?將驅動都改為LL庫

然后直接點擊?General Code

2,初始化dma:

void ws2812_init(void)
{LL_DMA_SetPeriphAddress(DMA1,LL_DMA_CHANNEL_3,LL_SPI_DMA_GetRegAddr(SPI1));LL_DMA_SetMemoryAddress(DMA1,LL_DMA_CHANNEL_3,(uint32_t)ledBuffer);LL_DMA_EnableIT_TC(DMA1, LL_DMA_CHANNEL_3);LL_SPI_EnableDMAReq_TX(SPI1);// 啟用SPILL_SPI_Enable(SPI1);
}

?這里卡了一會,原因就是忽略了?? ?LL_SPI_EnableDMAReq_TX(SPI1);函數,導致dma不發送

,在這里我們設置了外設地址和內存地址,然后打開了傳世完成中斷,這個在后面的傳輸中會用來檢測是否傳輸完成。

3,發送數據

void ws2812b_show(uint8_t num)
{if (num > LED_COUNT)num = LED_COUNT;// 等待上一次傳輸完成while (LL_DMA_IsEnabledChannel(DMA1, LL_DMA_CHANNEL_3));LL_DMA_SetM2MDstAddress(DMA1, LL_DMA_CHANNEL_3, (uint32_t)ledBuffer);// 啟動DMA傳輸LL_DMA_SetDataLength(DMA1, LL_DMA_CHANNEL_3, num * 24);LL_DMA_EnableChannel(DMA1, LL_DMA_CHANNEL_3);// 等待傳輸完成while (LL_DMA_IsEnabledChannel(DMA1, LL_DMA_CHANNEL_3));LL_mDelay(1);
}

?下一步我們去填充數據就行了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40818.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40818.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40818.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

OpenCV之特征點匹配

特征點選取 特征點探測方法有goodFeaturesToTrack(),cornerHarris()和SURF()。一般使用goodFeaturesToTrack()就能獲得很好的特征點。goodFeaturesToTrack()定義: void goodFeaturesToTrack( InputArray image, OutputArray corners,int maxCorners, double qualit…

jmeter errstr :“unsupported field type for multipart.FileHeader“

在使用jmeter測試接口的時候,提示errstr :"unsupported field type for multipart.FileHeader"如圖所示 這是因為我們 在HTTP信息頭管理加content-type參數有問題 直接在HTTP請求中,勾選: use multipart/form-data for POST【中文…

22、touchGFX學習Model-View-Presenter設計模式

touchGFX采用MVP架構,如下所示: 本文界面如下所示: 本文將實現兩個操作: 1、觸摸屏點擊開關按鍵實現打印開關顯示信息,模擬開關燈效果 2、板載案按鍵控制觸摸屏LED燈的顯示和隱藏 一、觸摸屏點擊開關按鍵實現打印開…

Go語言之依賴管理

go module go module是Go1.11版本之后官方推出的版本管理工具,并且從Go1.13版本開始,go module將是Go語言默認的依賴管理工具。 GO111MODULE 要啟用go module支持首先要設置環境變量GO111MODULE 通過它可以開啟或關閉模塊支持,它有三個可選…

docker搭建LNMP

docker安裝 略 下載鏡像 nginx:最新版php-fpm:根據自己需求而定mysql:根據自己需求定 以下是我搭建LNMP使用的鏡像版本 rootVM-12-16-ubuntu:/docker/lnmp/php/etc# docker images REPOSITORY TAG IMAGE ID CREATED SIZE mysql 8.0…

Linux的基本權限(文件,目錄)

文章目錄 前言一、Linux權限的概念二、Linux權限管理 1.文件訪問者分類2.文件類型和訪問類型3.文件訪問權限的相關設置方法三、目錄的權限四、權限的總結 前言 Linux下一切皆文件,指令的本質就是可執行文件,直接安裝到了系統的某種路徑下 一、Linux權限的…

embed mongodb 集成spring

在property文件下添加 de.flapdoodle.mongodb.embedded.version5.0.5 spring.mongodb.embedded.storage.oplog-size0不指定數據庫,會使用test, port默認是0,隨機端口號。 oplog-size mac默認是192mb, 其他系統會使用5%的磁盤可用空間&#x…

SpringCloud實用篇6——elasticsearch搜索功能

目錄 1 DSL查詢文檔1.1 DSL查詢分類1.2 全文檢索查詢1.2.1 使用場景1.2.2 基本語法1.2.3 示例1.2.4 總結 1.3 精準查詢1.3.1 term查詢1.3.2 range查詢1.3.3 總結 1.4.地理坐標查詢1.4.1 矩形范圍查詢1.4.2 附近查詢 1.5 復合查詢1.5.1 相關性算分1.5.2 算分函數查詢1&#xff0…

Python 字節碼指令 LOAD_DEREF

LOAD_DEREF 是 Python 字節碼指令,它與閉包和嵌套函數有關。要理解 LOAD_DEREF,我們首先需要了解 Python 中的幾個概念:cell、free variable 和閉包。 Cell 和 Free Variables: 當一個嵌套函數引用了其上級作用域中的一個變量,但該…

【大數據Hive】hive 事務表使用詳解

目錄 一、前言 二、Hive事務背景知識 hive事務實現原理 hive事務原理之 —— delta文件夾命名格式 _orc_acid_version 說明 bucket_00000 合并器(Compactor) 二、Hive事務使用限制 參數設置 客戶端參數設置 客戶端參數設置 三、Hive事務使用操作演示 操作步驟 客…

(已解決)redis.get報錯com.alibaba.fastjson.JSONException: autoType is not support

redis存取值問題,存自定義實體對象; 第一次取的時候報錯:com.alibaba.fastjson.JSONException: autoType is not support。 GenericFastJsonRedisSerializer序列化和反序列化redis的value值,需要bean對象含有無參構造方法。 解決…

【C語言】回調函數,qsort排序函數的使用和自己實現,超詳解

文章目錄 前言一、回調函數是什么二、回調函數的使用1.使用標準庫中的qsort函數2.利用qsort函數對結構體數組進行排序 三、實現qsort函數總結 先記錄一下訪問量突破2000啦,謝謝大家支持!!! 這里是上期指針進階鏈接,方便…

金融術語總結

洗錢 將犯罪或其他非法違法行為所獲得的違法收入,通過各種手段掩飾、隱瞞、轉化,使其在形式上合法化的行為。 存量客戶 某個時間段里原先已有的客戶,與新增客戶相對應。 月活躍用戶數量,MAU(Monthly Active User,M…

【go語言基礎】go中的方法

先思考一個問題,什么是方法,什么是函數? 方法是從屬于某個結構體或者非結構體的。在func這個關鍵字和方法名中間加了一個特殊的接收器類型,這個接收器可以是結構體類型的或者是非結構體類型的。從屬的結構體獲取該方法。 函數則…

【100天精通python】Day37:GUI界面編程_PyQT從入門到實戰(上)

目錄 專欄導讀 1 PyQt6 簡介: 1.1 安裝 PyQt6 和相關工具: 1.2 PyQt6 基礎知識: 1.2.1 Qt 的基本概念和組件: 1.2.2 創建和使用 Qt 窗口、標簽、按鈕等基本組件 1.2.3 布局管理器:垂直布局、水平布局、網格布局…

typedef函數代碼段解釋以及部分Windows下的系統函數

文章目錄 1、typedef int (WINAPI* LPSDOLInitialize)(const SDOLAppInfo* pAppInfo)2、typedef int (WINAPI* LPSDOLGetModule)(REFIID riid, void** intf)3、typedef int (WINAPI* LPSDOLTerminal)();4、GetProcAddress運行時獲取一個動態鏈接庫(DLL)中…

mysql與redis區別

mysql和redis的數據庫類型 mysql是關系型數據庫,主要用于存放持久化數據,將數據存儲在硬盤中,讀取速度較慢。 redis是NOSQL,即非關系型數據庫,也是緩存數據庫,即將數據存儲在緩存中,緩存的讀取速…

網絡

mcq Java 傳輸層:拆分和組裝,完成端到端的消息傳遞,流量控制,差錯控制等 網絡層: 尋址、路由,復用,擁塞控制,完成源到宿的傳遞。 顯然A選項是錯誤的,有流量控制的是傳輸層…

JavaScript TypeScript

文章目錄 JavaScript語法事件處理與HTML和CSS集成前端框架和庫 TypeScript靜態類型檢查語法更好的可維護性 包管理工具npmpnpmyarnBower JavaScript JavaScript(簡稱JS)是一種廣泛應用于網頁開發的腳本語言。它被用來為網頁增加交互性和動態功能。以下是…

netty學習分享(一)

TCP與UDP TCP 是面向連接的、可靠的流協議,通過三次握手建立連接,通訊完成時要拆除連接。 UDP是面向無連接的通訊協議,UDP通訊時不需要接收方確認,屬于不可靠的傳輸,可能會出現丟包現象 端口號: 端口號用…