STM32項目---汽車氛圍燈

一、藍牙模塊驅動

1、怎么使用藍牙模塊呢?

1:首先,先通過串口調試助手驗證藍牙模塊是否正常使用。先連接好

2:打開串口調試軟件配置好

3:發送測試指令:AT\r\n,返回OK,則說明連接正確,可以修改名字

AT+NAMECHEN\r\n? ?(AT+NAME:AT指令 ?CHEN:藍牙名字)

若串口返回:?OKsetname 則說明設置名字成功

2、代碼設置模塊的名字

配置好串口3,并設置串口波特率為:9600,調用下面代碼,發送AT指令

void usart3_send_str(const char *pbuf)
{const char *p = pbuf;//檢測當前p的指針有效性//*p檢測是否為非0  while(p && *p){USART_SendData(USART3,*p++);while(USART_GetFlagStatus(USART3,USART_FLAG_TXE)==RESET);}
}
void ble_set_config(void)
{//這個是必須delay_s(1);//設置好模塊的名字usart3_send_str("AT+NAMEBardb\r\n");delay_s(1);//重新啟動模塊usart3_send_str("AT+RESET\r\n");delay_s(2);
}

驅動源碼為:https://download.csdn.net/download/m0_63622771/91008537

二、ST7789V屏幕模塊驅動

1、基本信息為:

屏幕像素是:240×280,16位色深,5位(R)+6位(G)+5位(B)

2、主要特效

3、接口模式

(1) SPI 模式(常見于小尺寸屏)

  • 4線SPI(常用)
    • SCLK(時鐘)、MOSI(數據輸入)、DC(數據/命令選擇)、CS(片選)
    • 可選RESET(復位)、BLK(背光控制)
數據:像素點數據
命令:不同命令,設置LCD不同的模式在16位模式下,分辨率為:240*280,幀率為24,那么SPI頻率至少是多少
SPI總線,一脈沖傳1位數據。在16位模式下,分辨率為:240*280,
那么全屏需要位:1 075 200位,那么24幀對應的數據位:25 804 800。 
所以傳輸速度:25 804 800bps = 25 Mbit/s  至少需要SPI主頻約為:25MHZ,
正常來那么CPU的主頻至少:50MHZ

(2)SPI屏與STM32連接

屏幕與底板連接

驅動源碼為:https://download.csdn.net/download/m0_63622771/91008539

三、WS2812B燈帶模塊驅動

1、實物圖

2、電路圖原理

1:引腳說明

2:驅動原理

每一個LED都需要24bit數據(這里的24位不是我們常說的二進制位的數據,而是驅動燈帶的碼型數據),形成RGB,RGB的數據格式如下

3:燈帶的碼型

4:數據傳輸時間

所以發送一位數據(0碼或者1碼)所需時間為:1.25us

發送一個燈需要的時間:?1.25us*24+50us=30us,發完一個燈的數據后需要發送大于50us的低電平讓數據從鎖存器表現在燈上。

5:傳輸方式

這幅圖理解:即從單片機中發送數據給燈帶,當發送的數據為三個24的數據,則第一燈會拿到前面24位數據,剩下的數據會以此傳輸下去,即第二個燈拿到24到48的數據,第三個燈拿到后面的24位數。

6:我們通過DMA和SPI來傳輸數據給燈帶

以STM32F407ZET6的SPI2使用來分析。SPI2掛在APB1總線下,也就是說明SPI2的時鐘頻率為42MHZ,對SPI2進行分頻的,這個分頻得有一定的技巧。這里以8分頻為例子。42/8 = 5.25MHZ, 那么它的時鐘周期:1/5.25MHZ = 190ns(約等)。表示傳輸一個字節的時間大概是:190ns8=1.52us(而W2812B燈一位數據所需要時間約:1.25us)。這樣一看,是不是這個分頻是大致滿足的呀。

W2812B的一位數據,SPI輸出一個字節來表示即可,那么如果某個W2812B燈顯示為白色,即RGB為:0xFFFFF(24位),需要的時間范圍:30us;那么SPI需要輸出的字節數:24個(24*8 = 192位數據,大約需要190ns*192 = 36.480us),這樣一算,基本是符合W2812B傳輸時序。

驅動源碼為:https://download.csdn.net/download/m0_63622771/91008566

四、聲音傳感器的驅動模塊?

?1、實物圖

2、原理圖

傳感器模塊上的麥克風可將音頻信號轉換為電信號(模擬量),然后通過STM32自帶ADC功能將模擬量轉換為數字量。

LM386是一款功率放大器,具有自身功耗低、更新內鏈增益可調整、電源電壓范圍大、外接元件少和總諧波失真小等優點的功率放大器,廣泛應用于錄音機和收音機之中。

麥克風將聲音信號轉換為電信號,然后將信號發送到LM386的引腳3,并通過外部電路將它們輸出到引腳5(模塊的引腳OUT)。然后使用STM32中具有ADC功能的引腳,讀取模擬值。

3、硬件連接

?

驅動源碼為:https://download.csdn.net/download/m0_63622771/91008567

五、整個項目的演示視頻和源碼(可免費下載)?

WS2812的一個氛圍燈項目的演示_嗶哩嗶哩_bilibili

源碼:?https://download.csdn.net/download/m0_63622771/91008496

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

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

相關文章

python+uniapp微信小程序的共享雨傘租賃系統

目錄 技術棧介紹具體實現截圖系統設計研究方法:設計步驟設計流程核心代碼部分展示研究方法詳細視頻演示試驗方案論文大綱源碼獲取/詳細視頻演示 技術棧介紹 Django-SpringBoot-php-Node.js-flask 本課題的研究方法和研究步驟基本合理,難度適中&#xf…

一次生產故障引發的JVM垃圾回收器選型思考:徹底掌握垃圾回收原理及通用配置!

寫在前面的話 前幾天凌晨2點,我被一通電話驚醒——線上交易系統出現了嚴重的延遲問題,用戶支付請求響應時間從平時的100ms飆升到了5秒,客服電話都被打爆了。 經過緊急排查,我們發現罪魁禍首竟然是JVM的垃圾回收器!當…

學習日記-day30-6.15

完成目標: 知識點: 1.DDL和DML的補充 知識點 核心內容 重點 快速創建表 使用CREATE TABLE...AS SELECT語句基于現有表快速創建新表 結構和數據復制 vs 僅復制結構(WHERE 12) 數據刪除操作 DELETE FROM逐條刪除 vs TRUNCAT…

從檢測到智能質控:IACheck如何成為TIC機構的AI中臺?

一、TIC行業為何亟需AI質控? 過去十年,中國的TIC(Testing, Inspection, Certification)行業年均增長超過10%。無論是消費品、環境監測,還是工業制造、出口貿易,對“第三方檢測報告”的依賴程度持續加深。 …

cka-1.32考題

1、HPA自動擴縮容 考題 (考試的考題內容,只有下面方框里的內容) 你必須連接到正確的主機。不這樣做可能導致零分。 [candidatebase] $ ssh cka000050 Task 在 autoscale namespace 中創建一個名為 apache-server 的新 HorizontalPodAut…

DeepSeek 技術原理詳解

引言 DeepSeek是一種基于Transformer架構的大型語言模型,它在自然語言處理領域展現出了卓越的性能。本文將深入探討DeepSeek的技術原理,包括其架構設計、訓練方法和優化策略,并結合代碼實現進行詳細講解。 Transformer基礎架構 DeepSeek基…

組件化 websocket

實時數據響應&#xff0c;組件化websocket減少代碼冗余 組件定義 websocket.vue <template><div></div> </template><script>export default {data() {return {webSocket: null, // webSocket實例lockReconnect: false, // 重連鎖&#xff0c;…

IBMS集成系統3D可視化數字孿生管理平臺介紹、搭建、運維

IBMS集成系統3D可視化數字孿生管理平臺介紹、搭建、運維 IBMS集成系統3D可視化數字孿生管理平臺是一種先進的智能建筑管理系統&#xff0c;通過數字孿生技術和3D可視化界面&#xff0c;實現對建筑設施的全方位、智能化管理。該平臺整合了物聯網(IoT)、大數據、人工智能和三維建…

湖北理元理律師事務所:債務重組中的技術賦能與法律邊界

一、當法律遇上算法&#xff1a;還款模型的進化 傳統債務協商依賴律師經驗&#xff0c;如今通過技術工具可實現&#xff1a; 輸入&#xff1a;用戶收入/債務/必需支出 輸出&#xff1a; 1. 法定可減免金額&#xff08;基于LPR與歷史判例庫&#xff09;&#xff1b; 2.…

對抗串擾的第一武器

痕量分離;長度平行度;stackup&#xff1a;有沒有一個脫穎而出&#xff1f; 我已經有一段時間沒有看到關于串擾的文章了&#xff0c;所以我決定借此機會為那些可能對為什么精通串擾的 PCB 設計人員和硬件工程師使用各種設計規則來控制串擾感興趣的 PCB 設計社區中的人簡要介紹一…

FastAPI:(11)SQL數據庫

FastAPI&#xff1a;(11)SQL數據庫 由于CSDN無法展示「漸構」的「#d&#xff0c;#e&#xff0c;#t&#xff0c;#c&#xff0c;#v&#xff0c;#a」標簽&#xff0c;推薦訪問我個人網站進行閱讀&#xff1a;Hkini 「漸構展示」如下&#xff1a; #c 概述 文章內容概括 #mermaid…

“智眸·家聯“項目開發(一)

嵌入式開發調試知識點總結&#xff08;含操作流程&#xff09; 我們今天解決問題的過程&#xff0c;就像是偵探破案&#xff0c;從最表面的線索&#xff08;網絡不通&#xff09;開始&#xff0c;一步步深入&#xff0c;最終找到了案件的核心&#xff08;硬件不匹配&#xff0…

展開說說Android之Retrofit詳解_使用篇

Retrofit是由Square公司開發的類型安全HTTP客戶端框架&#xff0c;借助動態代理在運行時生成接口實現類&#xff0c;將注解轉化為OkHttp請求配置&#xff1b;節省成本通過轉換器(Gson/Moshi)自動序列化JSON/XML&#xff0c;內部處理網絡請求在主線程返回報文。Retrofit 直譯是封…

復古美學淺綠色文藝風格Lr調色教程,手機濾鏡PS+Lightroom預設下載!

調色介紹 復古美學淺綠色文藝風格 Lr 調色&#xff0c;是基于 Adobe Lightroom&#xff08;Lr&#xff09;軟件&#xff0c;為攝影作品賦予特定藝術氛圍的調色方式。通過合理設置軟件中的各項參數與工具&#xff0c;把照片調整為以淺綠色為主調&#xff0c;融合復古元素與文藝氣…

力扣網C語言編程題:缺失的第一個正數第三種解題方法

一. 簡介 前面文章學習了對該題目的兩種解題思路&#xff0c;文章如下&#xff1a; 力扣網C語言編程題&#xff1a;缺失的第一個正數-CSDN博客 但是前面的實現上在空間復雜度上沒有滿足要求。本文學習一種在空間復雜度上為 O(1)的思路。 二. 力扣網C語言編程題&#xff1a;缺…

PyTorch 實現 MNIST 手寫數字識別

PyTorch 實現 MNIST 手寫數字識別 MNIST 是一個經典的手寫數字數據集&#xff0c;包含 60000 張訓練圖像和 10000 張測試圖像。使用 PyTorch 實現 MNIST 分類通常包括數據加載、模型構建、訓練和評估幾個部分。 數據加載與預處理 使用 torchvision 加載 MNIST 數據集&#x…

Python內存互斥與共享深度探索:從GIL到分布式內存的實戰之旅

引言&#xff1a;并發編程的內存困局 在開發高性能Python應用時&#xff0c;我遭遇了這樣的困境&#xff1a;多進程間需要共享百萬級數據&#xff0c;而多線程間又需保證數據一致性。傳統解決方案要么性能低下&#xff0c;要么引發競態條件。本文將深入探討Python內存互斥與共…

【Unity】使用 C# SerialPort 進行串口通信

索引 一、SerialPort串口通信二、使用SerialPort1.創建SerialPort對象&#xff0c;進行基本配置2.寫入串口數據①.寫入串口數據的方法②.封裝數據 3.讀取串口數據①.讀取串口數據的方法②.解析數據 4.讀取串口數據的時機①.DataReceived事件②.多線程接收數據 5.粘包問題處理 一…

如何寫好單元測試:Mock 脫離數據庫,告別 @SpringBootTest 的重型啟動

如何寫好單元測試&#xff1a;Mock 脫離數據庫&#xff0c;告別 SpringBootTest 的重型啟動 作者&#xff1a;Killian&#xff08;重慶&#xff09; — 歡迎各位架構獵頭、技術布道者聯系我&#xff0c;項目實戰豐富&#xff0c;代碼穩健&#xff0c;Mock測試愛好者。 技術棧&a…

【DNS】在 Windows 下修改 `hosts` 文件

在 Windows 下修改 hosts 文件&#xff0c;一般用于本地 DNS 覆蓋。操作步驟如下&#xff08;以 Windows 10/11 為例&#xff09;&#xff1a; 1. 以管理員權限打開記事本 點擊 開始 → 輸入 “記事本”在“記事本”圖標上右鍵 → 選擇 以管理員身份運行 如果提示“是否允許此…