一、藍牙模塊驅動
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