IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 手机蓝牙控制SMT32LED灯亮 -> 正文阅读

[嵌入式]手机蓝牙控制SMT32LED灯亮

1.硬件

通过蓝牙通讯 使用手机来控制 单片机 上 LED 灯的亮灭。

1)硬件使用 SMT32 单片机
2)蓝牙模块(HC-05)
3) Android 手机一部(含蓝牙助手,可自行开发APP)

手机 —(蓝牙连接)—> HC-05 ----(串口通信)–> 单片机 -----> LED

2.硬件连接?

1)蓝牙模块VCC、GND、TXD、RXD
2)单片机VCC、GND、RXD、TXD

蓝牙模块上的 VCC 接 到开发板上的 VCC 针脚,蓝牙模块的 GND 接到开发板上的 GND 针脚,蓝牙模块的 TXD 接到开发板上的 RXD 针脚,蓝牙模块的 RXD 接到开发板上的TXD针脚。
单片机上电之后,手机会搜索到 一个蓝牙名称为 “HC-05” 的蓝牙信号,就是这个蓝牙模块。;连接输入密码1234,连接成功。

?3.代码(mian.c)

#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "lcd.h"
#include "hc05.h"
#include "usart2.h"			 	 
#include "string.h"	 
#include "key.h"
void HC05_Role_Show(void)
{
	if(HC05_Get_Role()==1)LCD_ShowString(30,140,200,16,16,"ROLE:M");	//主
	else LCD_ShowString(30,140,200,16,16,"ROLE:S ");			 		//从
}
void HC05_Sta_Show(void)
{												 
	if(HC05_LED)LCD_ShowString(120,140,120,16,16,"STA:C ");			//连接成功
	else LCD_ShowString(120,140,120,16,16,"STA:S");	 			//连接失败				 
}	  
int main(void)
 {
	uint8_t rx=0; 
	u8 t;
	u8 key;
	u8 sendmask=0;
	u8 sendcnt=0;
	u8 sendbuf[20];	  
	u8 reclen=0;
	u16 data;
	delay_init();	
    uart_init(9600);	 	
	LED_Init();				
	KEY_Init();				
	LCD_Init();					 	  
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); 
	
   
	POINT_COLOR=RED;
	LCD_ShowString(30,30,200,16,16," STM32 ^_^");	
	LCD_ShowString(30,50,200,16,16,"HC05 ");	
	LCD_ShowString(30,70,200,16,16,"ATOM@ALIENTEK");
	while(HC05_Init()) 		 
	{
		LCD_ShowString(30,90,200,16,16,"HC05 Error!"); 
		delay_ms(500);
		LCD_ShowString(30,90,200,16,16,"Please Check!!!"); 
		delay_ms(100);
	}	 										   	   
	LCD_ShowString(30,90,200,16,16,"WK_UP:ROLE KEY0:SEND/STOP");  
	LCD_ShowString(30,110,200,16,16,"ATK-HC05 Standby!");  
  	LCD_ShowString(30,160,200,16,16,"Send:");	
	LCD_ShowString(30,180,200,16,16,"Receive:");	

	POINT_COLOR=BLUE;
	HC05_Role_Show();	  
 	while(1) 
	{		
		key=KEY_Scan(0);
		if(key==WKUP_PRES)						
		{
   			key=HC05_Get_Role();
			if(key!=0XFF)
			{
				key=!key;  					   
				if(key==0)HC05_Set_Cmd("AT+ROLE=0");
				else HC05_Set_Cmd("AT+ROLE=1");
				HC05_Role_Show();
				HC05_Set_Cmd("AT+RESET");	
			}
		}else if(key==KEY0_PRES)
		{
			sendmask=!sendmask;					 
			if(sendmask==0)LCD_Fill(30+40,160,240,160+16,WHITE);
		}else delay_ms(10);	   
		if(t==50)
		{
			if(sendmask)					
			{
				sprintf((char*)sendbuf,"ALIENTEK HC05 %d\r\n",sendcnt);
	  			LCD_ShowString(30+40,160,200,16,16,sendbuf);	
				u2_printf("ALIENTEK HC05 %d\r\n",sendcnt);		
				sendcnt++;
				if(sendcnt>99)sendcnt=0;
			}
			HC05_Sta_Show();  	  
			t=0;
			LED0=!LED0; 	     
		}			
		if(USART2_RX_STA&0X8000)			
		{
			LCD_Fill(30,200,240,320,WHITE);	
 			reclen=USART2_RX_STA&0X7FFF;	
		  	USART2_RX_BUF[reclen]=0;	 	
			if(reclen==9||reclen==8) 		
			{
				if(strcmp((const char*)USART2_RX_BUF,"+LED1 ON")==0)LED1=0;	//打开LED1
				if(strcmp((const char*)USART2_RX_BUF,"+LED1 OFF")==0)LED1=1;//关闭LED1
			}
 			LCD_ShowString(30,200,209,119,16,USART2_RX_BUF);
 			USART2_RX_STA=0;				
		}	
		
		if(USART_ReceiveData(USART2) == '1')	 
		{
			LED1=0;
	    delay_ms(10);	
	}
		else
		{
				LED1=1;
    delay_ms(10);	 //其他情况灯灭
		}
		t++;	
	}											    
}

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-01 14:40:08  更:2021-08-01 14:41:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:25:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码