STM32项目---汽车氛围灯

发布于:2025-06-15 ⋅ 阅读:(17) ⋅ 点赞:(0)

一、蓝牙模块驱动

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);
}

驱动源码为:

二、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连接

屏幕与底板连接

驱动源码为:

三、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传输时序。

驱动源码为:

四、声音传感器的驱动模块 

 1、实物图

2、原理图

传感器模块上的麦克风可将音频信号转换为电信号(模拟量),然后通过STM32自带ADC功能将模拟量转换为数字量。

LM386是一款功率放大器,具有自身功耗低、更新内链增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点的功率放大器,广泛应用于录音机和收音机之中。

麦克风将声音信号转换为电信号,然后将信号发送到LM386的引脚3,并通过外部电路将它们输出到引脚5(模块的引脚OUT)。然后使用STM32中具有ADC功能的引脚,读取模拟值。

3、硬件连接

 

驱动源码为:

五、整个项目的演示视频和源码(可免费下载) 

WS2812的一个氛围灯项目的演示_哔哩哔哩_bilibili

源码: