stm32温度湿度(带蓝牙app功能)
1.配置蓝牙模块1.1蓝牙模块1.2 ch340 -->usb转换TTL1.3USB转换TTL与蓝牙模块连接1.3.1查找蓝牙文档(hc-05)的1.3.2 然后打开串口助手1.3.3设置波特率为(38400),然后打开串口1.3.4 测试AT指令1.3.5 设置/查询设备名称1.3.6 修改蓝牙密码(我没有修改,你可以修改一下)1.3.7 (重要的设置) 设置/查询—串口参数:
2. 连接每一个模块3.写代码3.1 DHT11代码3.2 oled代码3.3 led代码3.4 key代码(显示蓝牙是否连接)3.5串口设置3.5 Main函数解释3.5.1导入其他文件的头文件3.5.2 函数的初始化3.5.3 每进行一次不一样的显示要进行一次清除oled屏幕3.5.6 显示一个图片3.5.5 显示个人信息
进入 while 函数APP连接蓝牙完整stm32代码下载
1.配置蓝牙模块
连接蓝牙模块与串口模块(ch340 -->usb转换TTL) ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200707192746439.png#pic_center)
1.1蓝牙模块
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200707192814728.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDkwODE1OQ==,size_16,color_FFFFFF,t_70#pic_center)
蓝牙原理图
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200707192829888.png#pic_center)
1.2 ch340 -->usb转换TTL
蓝牙 usb转换TTL
GND ---------------->GND
TXD ---------------->RXD
RXD ------------------>TXD
VCC -------------------> VCC
KEY(EN)使能的io—>5V(3.3V) ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200707192851903.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDkwODE1OQ==,size_16,color_FFFFFF,t_70#pic_center)
1.3USB转换TTL与蓝牙模块连接
1.3.1查找蓝牙文档(hc-05)的
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200707192902733.png#pic_center)
1.3.2 然后打开串口助手
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200707192913528.png#pic_center)
1.3.3设置波特率为(38400),然后打开串口
上电,模块进入 AT 命令响应状态。超级终端或其他串口工具,设置波特率 38400,数据位 8 位,停止位 1 位,无校验位,无流控制。
串口发送字符“AT”,成功返回“OK”。PIO 置低,重新上电,模块为主模块,自动搜索从模块,建立连接。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200707192923920.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDkwODE1OQ==,size_16,color_FFFFFF,t_70#pic_center)
1.3.4 测试AT指令
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200707192936798.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDkwODE1OQ==,size_16,color_FFFFFF,t_70#pic_center)
1.3.5 设置/查询设备名称
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200707192953397.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDkwODE1OQ==,size_16,color_FFFFFF,t_70#pic_center)
设置蓝牙名称:
AT+NAME="JYY"
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200707193017578.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDkwODE1OQ==,size_16,color_FFFFFF,t_70#pic_center)
返回ok
查看是否设置成功
AT+NAME?
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200707193040295.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDkwODE1OQ==,size_16,color_FFFFFF,t_70#pic_center)
1.3.6 修改蓝牙密码(我没有修改,你可以修改一下)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200707193110788.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDkwODE1OQ==,size_16,color_FFFFFF,t_70#pic_center)
1.3.7 (重要的设置) 设置/查询—串口参数:
设置为 9600,0,0
AT+UART=9600,0,0
2. 连接每一个模块
/************************************************
@yuan
io连接图
DHT11温湿度模块 (DATA)io---- PA.11
OLED
SDA ---->PA.5
SCL ---->PA.7
蓝牙模块
RXD ----->stm32f103的PA.9(TXD)
TXD ----->stm32f103的PA.10(RXD)
KEY--> 蓝牙显示LED PA.12 如果·连接成功显示ON 连接失败或者没有蓝牙显示OFF
************************************************/
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200707193211583.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDkwODE1OQ==,size_16,color_FFFFFF,t_70#pic_center)
3.写代码
3.1 DHT11代码
//复位DHT11
void DHT11_Rst(void)
{
DHT11_IO_OUT(); //SET OUTPUT
DHT11_DQ_OUT=0; //拉低DQ
delay_ms(20); //拉低至少18ms
DHT11_DQ_OUT=1; //DQ=1
delay_us(30); //主机拉高20~40us
}
//等待DHT11的回应
//返回1:未检测到DHT11的存在
//返回0:存在
u8 DHT11_Check(void)
{
u8 retry=0;
DHT11_IO_IN();//SET INPUT
while (DHT11_DQ_IN&&retry=100)return 1;
else retry=0;
while (!DHT11_DQ_IN&&retry=100)return 1;
return 0;
}
//从DHT11读取一个位
//返回值:1/0
u8 DHT11_Read_Bit(void)
{
u8 retry=0;
while(DHT11_DQ_IN&&retry |