国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

HC-05藍(lán)牙模塊與STM32控制led燈亮詳解

這篇具有很好參考價值的文章主要介紹了HC-05藍(lán)牙模塊與STM32控制led燈亮詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、HC-05藍(lán)牙模塊解析

1.簡介

HC-05模塊是一種基于藍(lán)牙協(xié)議的簡單無線通信設(shè)備,共有6個引腳,其中兩個引腳通過stm32的兩個含TX和RX的接口與之進(jìn)行通信,一般用于無線控制,智能家居等。

2.HC-05原理

VCC:用于供電
GND:用于供電
TX(發(fā)送):與單片機(jī)某一RX口進(jìn)行通信
RX(接收):與單片機(jī)某一TX口進(jìn)行通信
一句話,TX->RX,RX->TX.
//這里的TX與RX直接選某STM32一個USART的一對。
如下圖
HC-05藍(lán)牙模塊與STM32控制led燈亮詳解

EN:使能,若置低電平,則模塊被禁用
STATE:通過該引腳輸出的高低電平可以知道藍(lán)牙模塊的狀態(tài),連接時輸出高電平,斷開時輸出低電平。

在配置后使用藍(lán)牙時,我一般不用EN和STATE這兩個引腳

HC-05藍(lán)牙模塊與STM32控制led燈亮詳解

3.HC-05實物圖

HC-05藍(lán)牙模塊與STM32控制led燈亮詳解
HC-05藍(lán)牙模塊與STM32控制led燈亮詳解

二、使用AT指令進(jìn)行配置

1.進(jìn)入命令響應(yīng)工作模式

我使用PWLINK2和串口助手進(jìn)行對其的配置,接線時,也采用TX->RX,RX->TX.

長按藍(lán)牙模塊的同時,給HC-05模塊進(jìn)行上電,與此同時,模塊上的指示燈大概每隔1s閃爍一次,如視頻所示,此時則說明已經(jīng)進(jìn)入了命令響應(yīng)模式。

2.配置串口

我使用VOFA+來進(jìn)行串口調(diào)試.

打開VOFA+,
設(shè)置接口為串口
設(shè)置數(shù)據(jù)引擎為RawData
設(shè)置波特率 38400
設(shè)置數(shù)據(jù)位 8 位
設(shè)置停止位 1 位
設(shè)置無校驗位
如圖
HC-05藍(lán)牙模塊與STM32控制led燈亮詳解

3.進(jìn)行指令

1.測試指令:發(fā)送AT,得到回應(yīng)OK
2.獲取軟件版本號:發(fā)送AT+VERSON,得到版本號
3.獲取藍(lán)牙地址:AT+ADDR,獲得藍(lán)牙地址
4.配置藍(lán)牙模塊名稱:AT+NAME=“(名稱)”
5.配置密碼:AT+PSWD=(密碼)(4位)
6.配置主從模式:AT+ROLE=0或1(0為從模式,1為主模式)

以上指令對初學(xué)者已經(jīng)足夠使用,多余的指令可以查找參考手冊

狀況如下圖
HC-05藍(lán)牙模塊與STM32控制led燈亮詳解
3.和手機(jī)連接(使用手機(jī)軟件藍(lán)牙調(diào)試器)
HC-05藍(lán)牙模塊與STM32控制led燈亮詳解

三、使用stm32f103c8t6實現(xiàn)

1.思路

配置好串口后,當(dāng)單片機(jī)接收到數(shù)據(jù)后,執(zhí)行LED點亮的操作

2.代碼

1.HC05.C

#include "stm32f10x.h"                  // Device header
//1.開啟時鐘,把需要用的USART和GPIO口的時鐘打開
//2.GPIO初始化,把TX設(shè)為復(fù)用輸出,RX設(shè)為輸入
//配置USART,配置參數(shù)
#include <stdio.h>
#include <stdarg.h>
#include "HC05.h"  
char HC05_RxPacket[100];				//"@MSG\r\n"
uint8_t HC05_RxData;//接收數(shù)據(jù)
uint8_t HC05_RxFlag;//接收標(biāo)志位
void HC05_Init(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
	//初始化TX,把TX配置成復(fù)用推挽輸出
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
	//TX是USART2控制的外設(shè)輸出腳,選擇復(fù)用推挽輸出
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA, &GPIO_InitStructure);
	
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA, &GPIO_InitStructure);
	//配置USART
	USART_InitTypeDef USART_InitStructure;
	//定義USART結(jié)構(gòu)體
	USART_InitStructure.USART_BaudRate = 9600;
	//波特率數(shù)值
	USART_InitStructure.USART_HardwareFlowControl =  USART_HardwareFlowControl_None;
	//不使用流控
	USART_InitStructure.USART_Mode = USART_Mode_Tx|USART_Mode_Rx;
	//TX發(fā)送功能
	USART_InitStructure.USART_Parity = USART_Parity_No;
	//校驗:不需要
	USART_InitStructure.USART_StopBits = USART_StopBits_1;
	//停止位:1位停止位
	USART_InitStructure.USART_WordLength = USART_WordLength_8b;
	//字長:8位
	USART_Init(USART1, &USART_InitStructure);
	//初始化
	
	USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
	NVIC_InitTypeDef NVIC_InitStructure;
	NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
	NVIC_Init(&NVIC_InitStructure);
	//配置中斷
	USART_Cmd(USART1, ENABLE);
	//供能
}
//發(fā)送一個字節(jié)數(shù)據(jù)的函數(shù)
void HC05_SendByte(uint8_t Byte)
{
	USART_SendData(USART1, Byte);
	//函數(shù)的功能是通過外設(shè)USARTx發(fā)送單個數(shù)據(jù)。
	while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
	//該標(biāo)志位,當(dāng)下一次再次使用SendData時,會自動清0
}
//發(fā)送多個字節(jié)數(shù)據(jù)(傳遞數(shù)組)
void HC05_SendArray(uint8_t *Array, uint16_t Length)
{
	uint16_t i;
	for (i = 0; i < Length; i ++)
	{
		HC05_SendByte(Array[i]);
	}
}
//發(fā)送多個字符數(shù)據(jù)
//string類型自帶標(biāo)志位,無需長度限制
void HC05_SendString(char *String)
{
	uint8_t i;
	for (i = 0; String[i] != '\0'; i ++)
	{
		HC05_SendByte(String[i]);
	}
}
//求x的y次方函數(shù)
uint32_t HC05_Pow(uint32_t X, uint32_t Y)
{
	uint32_t Result = 1;
	while (Y --)
	{
		Result *= X;
	}
	return Result;
}
//發(fā)送數(shù)字(可顯示成字符串形式)
//利用先相除得到首位,后取余,發(fā)送出該一個數(shù)字
void HC05_SendNumber(uint32_t Number, uint8_t Length)
{
	uint8_t i;
	for (i = 0; i < Length; i ++)
	{
		HC05_SendByte(Number / HC05_Pow(10, Length - i - 1) % 10 + '0');
	}
}
//重定向fputc
//printf的本質(zhì)上是不斷調(diào)用fputc()
//重定向后,只能該串口使用,其余串口無法使用
int fputc1(int ch, FILE *f)
{
	HC05_SendByte(ch);
	return ch;
}


void HC05_Printf(char *format, ...)
{
	char String[100];
	va_list arg;
	va_start(arg, format);
	vsprintf(String, format, arg);
	va_end(arg);
	HC05_SendString(String);
}
//接收標(biāo)志位判斷
uint8_t HC05_GetRxFlag(void)
{
	if ( HC05_RxFlag == 1)
	{
		HC05_RxFlag = 0;
		return 1;
	}
	return 0;
}

uint8_t HC05_GetRxData(void)
{
	return HC05_RxData;
}

void HC05_IRQHandler(void)
{
	if (USART_GetITStatus(USART1, USART_IT_RXNE) == SET)
	{
		HC05_RxData = USART_ReceiveData(USART1);
		HC05_RxFlag = 1;
		USART_ClearITPendingBit(USART1, USART_IT_RXNE);
	}
}

2.main.c




#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "LED.h"
#include "HC05.h"
uint8_t RxData;
uint16_t AD0, AD1, AD2, AD3,AD4,AD5;
int main(void)
{
	LED_Init();
	HC05_Init();
	while (1)
	{
		HC05_IRQHandler();
		if (HC05_GetRxFlag() == 1)
		{
			RxData = HC05_GetRxData();
			HC05_SendByte(RxData);
			LED_ON();
			
		}
		
	}
	
}

3.視頻如下

審核還沒通過,通過之后補(bǔ)上,

希望大家多多支持創(chuàng)作文章來源地址http://www.zghlxwxcb.cn/news/detail-475026.html

到了這里,關(guān)于HC-05藍(lán)牙模塊與STM32控制led燈亮詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • HC-05(ZS-040)藍(lán)牙模塊使用詳情(藍(lán)牙模塊配置、手機(jī)藍(lán)牙控制單片機(jī)、藍(lán)牙與藍(lán)牙之間的通信)含51、32程序

    HC-05(ZS-040)藍(lán)牙模塊使用詳情(藍(lán)牙模塊配置、手機(jī)藍(lán)牙控制單片機(jī)、藍(lán)牙與藍(lán)牙之間的通信)含51、32程序

    HC-05是一款主從一體化的藍(lán)牙模塊,因此其使用起來比較方便,只需要進(jìn)行簡單的配置即可。 本文就 手把手的介紹小白入手模塊后如何使用 。 對于模塊使用:1、藍(lán)牙配置→2、手機(jī)與藍(lán)牙的傳輸→3、手機(jī)通過藍(lán)牙模塊控制單片機(jī)→4、一對藍(lán)牙之間主—從傳輸數(shù)據(jù),這是一個

    2023年04月09日
    瀏覽(400)
  • HC-05藍(lán)牙模塊--------手機(jī)與STM32通信(代碼編寫)(上位機(jī)配置)保姆級教程

    HC-05藍(lán)牙模塊--------手機(jī)與STM32通信(代碼編寫)(上位機(jī)配置)保姆級教程

    ? 大家好哇!我是小光,嵌入式愛好者,一個想要成為系統(tǒng)架構(gòu)師的大三學(xué)生。 ?因為之前無論是電賽還是做項目,都用到了藍(lán)牙模塊,如:手機(jī)和stm32的通信,電賽中的雙車通信,還是遙感小車的stm32與stm32的無線通信等等 ?本篇文章對HC-05藍(lán)牙模塊與手機(jī)的通信做一個詳

    2024年02月03日
    瀏覽(102)
  • STM32系列——手把手教你藍(lán)牙模塊HC05、HC06的使用,重在“用起來”(HAL庫)

    STM32系列——手把手教你藍(lán)牙模塊HC05、HC06的使用,重在“用起來”(HAL庫)

    不論是HC05還是HC06,我們用到的都是藍(lán)牙模塊的透傳功能,只需要用到4個引腳:RXD、TXD、VCC(5V)、GND。 1、HC-05有6個引腳,但是我們只用到4個。 2、HC-05正面有一個按鍵。與HC-06的區(qū)別是, 它上電之前必須要按住此按鍵再插入電腦中,才能夠進(jìn)入AT模式 。HC-06沒有按鍵,直接

    2024年02月05日
    瀏覽(100)
  • 【基于stm32】【附代碼】兩塊藍(lán)牙模塊HC-05進(jìn)行通訊,不占用串口一的代碼教程

    【基于stm32】【附代碼】兩塊藍(lán)牙模塊HC-05進(jìn)行通訊,不占用串口一的代碼教程

    目錄 前言 一、兩塊hc-05藍(lán)牙通訊的連接 二、使用步驟 1.hc-05從機(jī),該教程主要是應(yīng)用于【收數(shù)據(jù)】 usar.h代碼 usart.c代碼(只引用stm32的串口2,串口一用于燒程序) main.c 2.hc-05主機(jī),該教程主要是應(yīng)用于【發(fā)數(shù)據(jù)】 usar.h代碼 usart.c代碼(只引用stm32的串口2,串口一用于燒程序)

    2024年02月16日
    瀏覽(122)
  • 藍(lán)牙模塊(HC-05)與手機(jī)連接,藍(lán)牙與藍(lán)牙互聯(lián),電腦通過藍(lán)牙控制單片機(jī)

    藍(lán)牙模塊(HC-05)與手機(jī)連接,藍(lán)牙與藍(lán)牙互聯(lián),電腦通過藍(lán)牙控制單片機(jī)

    HC-05藍(lán)牙模塊,USB TO TTL手機(jī)APP為SPP藍(lán)牙串口 第一章:藍(lán)牙模塊配置 一:HC-05與USB TO TTL連接 EN:為使能引腳,一般不接 VCC:接USB TO TTL模塊的5v腳(3.3v不亮) GND:接USB TO TTL模塊的GND腳 TXD:接USB TO TTL模塊的RXD腳 RXD:接USB TO TTL模塊的TXD腳 STATE:狀態(tài)引腳,一般不接 二:進(jìn)入

    2024年02月12日
    瀏覽(108)
  • arm學(xué)習(xí)之stm32設(shè)備樹學(xué)習(xí)-中斷控制led燈亮滅+字符設(shè)備指令控制led燈亮滅

    中斷控制led燈亮滅 驅(qū)動文件源碼 led-key.c 字符設(shè)備指令控制led燈亮滅 驅(qū)動文件 led-cmd.c 應(yīng)用文件 led.c

    2024年02月14日
    瀏覽(26)
  • STM32之通過按鍵控制LED燈亮滅

    STM32之通過按鍵控制LED燈亮滅

    之前我們已經(jīng)實現(xiàn)了LED燈的亮滅,我們對LED燈的結(jié)構(gòu)應(yīng)該有一個大致的了解。接下來我們對按鍵控制led進(jìn)行學(xué)習(xí)。 首先我們要了解一下按鍵的結(jié)構(gòu)。按鍵結(jié)構(gòu)如圖。 ?由此可知,此處我們有兩種按鍵,一種是普通的按鍵KEY0, KEY1(KEY2),他們連接的串口分別是PE4, PE3(PE2),對應(yīng)

    2024年02月08日
    瀏覽(23)
  • stm32按鍵控制LED燈亮滅(中斷法)

    stm32按鍵控制LED燈亮滅(中斷法)

    用按鍵控制STM32上的LED燈亮滅,可以采用輪詢法和中斷法。輪詢法需要不斷檢測按鍵的狀態(tài),消耗MCU;而中斷法只是在按下的那一刻觸發(fā)中斷,控制燈亮滅。輪詢法相對于更常規(guī),容易操作。因此我們這里講的用中斷法。關(guān)于中斷的概述,這里不作介紹,只講操作,分析代碼

    2024年02月07日
    瀏覽(22)
  • STM32外設(shè)系列—HC-05(藍(lán)牙)

    STM32外設(shè)系列—HC-05(藍(lán)牙)

    ?? 文章作者:二土電子 ?? 關(guān)注文末公眾號獲取其他資料和工程文件! ?? 期待大家一起學(xué)習(xí)交流! 藍(lán)牙(Bluetooth)是一種無線技術(shù)標(biāo)準(zhǔn),可實現(xiàn)固定設(shè)備、移動設(shè)備和樓宇個人域網(wǎng)之間的短距離數(shù)據(jù)交換(使用2.4~2.485GHz的ISM波段的UHF無線電波)。藍(lán)牙技術(shù)最初由電信巨頭愛立信

    2024年02月12日
    瀏覽(29)
  • STM32F407+藍(lán)牙HC-05+手機(jī)藍(lán)牙助手

    STM32F407+藍(lán)牙HC-05+手機(jī)藍(lán)牙助手

    突然想試試怎么玩藍(lán)牙模塊,本文演示工程較為簡單,最后結(jié)果為通過手機(jī)藍(lán)牙助手控制單片機(jī)上小燈的亮滅。 用到的軟件:STM32CubeMX、Keil、串口調(diào)試助手XCOM 、藍(lán)牙調(diào)試寶(手機(jī)藍(lán)牙調(diào)試助手) 用到的硬件:32單片機(jī)、HC-05藍(lán)牙模塊、USB轉(zhuǎn)TTL模塊 本文在了解如何使用STM32C

    2024年02月02日
    瀏覽(56)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包