首页 > 其他分享 >基于stm32f103c8t6蓝牙连接模块hc-05

基于stm32f103c8t6蓝牙连接模块hc-05

时间:2023-12-29 17:57:54浏览次数:36  
标签:GPIO 05 void 蓝牙 OLED HC05 stm32f103c8t6 hc include

一、蓝牙通信流程

最简单实际的的蓝牙通信过程就是
单片机——蓝牙——手机蓝牙app
蓝牙作为桥梁进行单片机与手机数据的交换
蓝牙就如同一个无线的USART一样,将两者连接。

二、硬件资料

1.管教图

 连接图:

 实物:连接图

 

 

 

 三、软件资料

1.电脑蓝牙调试软件网址

广州汇承信息科技有限公司 (hc01.com) 网址

2.工具

 3.连接成功

 

#include "stm32f10x.h"                  // Device header
#include "Serial.h"

extern uint8_t RxSTA;

void HC05_Init()
{
    Serial_Init();
    
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
    
    GPIO_InitTypeDef GPIO_InitStructure;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
        
}

void HC05_EnterAT()
{
    GPIO_SetBits(GPIOA, GPIO_Pin_0);
}    

void HC05_ExitAT()
{
    GPIO_ResetBits(GPIOA, GPIO_Pin_0);
}

void HC05_SendString(char *Buf)
{
    Serial_Printf(Buf);
}

void HC05_GetData(char *Buf)
{
    uint32_t count = 0, a = 0;
    while (count < 10000)
    {
        if (Serial_GetRxFlag() == 1)
        {
            Buf[a] = Serial_GetRxData();
            a ++;
            count = 0;
            RxSTA = 0;
        }
        count ++;
    }

}

主函数

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "OLED.h"
#include "HC05.h"

uint8_t RxSTA = 1;
char RxData[100] = "None";

int main(void)
{
    OLED_Init();
    HC05_Init();
    OLED_ShowString(1, 1, "RxData:");
    OLED_ShowString(2, 1, RxData);
    
    while (1)
    {
        HC05_GetData(RxData);
        if (RxSTA == 0)
        {
            OLED_Clear();
            OLED_ShowString(1, 1, "RxData:");
            OLED_ShowString(2, 1, RxData);
            RxSTA = 1;
        }
    }
}

四、实验现象

参考视频

五、结尾

只是实现了电脑蓝牙连接功能,期待下次进步。

标签:GPIO,05,void,蓝牙,OLED,HC05,stm32f103c8t6,hc,include
From: https://www.cnblogs.com/yaoyuandesishen/p/17935438.html

相关文章

  • 17 SPI驱动HC595点亮数码管
    软件版本:VIVADO2021.1操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录米联客(MILIANKE)FPGA社区-www.uisrc.com观看免费视频课程、在线答疑解惑!1概述前面课程我们编写SPI通信FPGA的收发程序,那么这一节课,我们将展示下SPI接口的应用,使用SPI接口的74HC595......
  • nodejs学习05——mongoose
    简介Mongoose是一个对象文档模型库,官网http://www.mongoosejs.net/作用:方便使用代码操作mongodb数据库初体验//1.安装mongoose//2.导入mongooseconstmongoose=require('mongoose');//设置strictQuery为truemongoose.set('strictQuery',true);//3.连接......
  • 05 FPGA流水灯实验
    软件版本:VIVADO2021.1操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录米联客(MiLianKe)FPGA社区-www.uisrc.com观看免费视频课程、在线答疑解惑!1概述本章课程以大家熟悉的流水灯为例子,详细讲解了VIVADO软件的使用,包括创建FPGA工程,编写Verilog代码,添加管......
  • springcloud动力节点-05Sleuth
    SpringCloudSleuth1.什么是链路追踪官网:https://spring.io/projects/spring-cloud-sleuth链路追踪就是:追踪微服务的调用路径2.链路追踪的由来在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的请求结果,每一个请求都会开成一......
  • 洛谷 P9058 [Ynoi2004] rpmtdq
    洛谷传送门类比P9062[Ynoi2002]AdaptiveHsearch&Lsearch处理区间最近点对的思路,尝试只保留可能有贡献的点对。处理树上路径容易想到点分治。设点\(u\)到分治中心的距离为\(a_u\)。我们有\(\text{dis}(u,v)\lea_u+a_v\)。考虑一个点对\((u,v)\)什么时候一定没......
  • HighCharts 地图画航线,以及在城市点画圈
    需求:生成一个世界地图,在城市点处画一个响应式的圈,及在城市点间画一条指示性的航线分析:生成一幅世界地图需导入相关地图js文件与获取json文件,在城市点画一个响应式的圈和一条指示性的航线,需要生成序列,并指定类型,航线类型(flowmap),响应式的圆圈用render进行画圆圈,具体请看下图解决:源......
  • std::max、std::min error C2589: “(”:“::”右边的非法标记,error C2059: 语法错误:
    个人采用方案三解决问题。在VC++种同时包含头文件#include<windows.h>和#include<algorithm>后就会出现无法正常使用std标准库中的min和max模板函数,经过查阅发现这是因为在Windows.h种也有min和max的定义,这样就导致了algorithm中的min和max无法正常使用,这里给出两种解决方案,来......
  • 405错误---Request method 'POST' not supported
     错误:Requestmethod'POST'notsupported--方法不支持  解决: 多数情况下,是由于GET,POST,DELETE,PUT等方法类型不一致导致的。 所以将请求方法改回就好。例:此处的@Get方法改为@Post   ......
  • 05跟踪约束
       01,ClampToConstraint钳制到约束(这个要约束在曲线上,运动也在曲线上)轴向限定(ClampTo)约束将一个对象限定到曲线上。轴向限定(ClampTo)约束和跟随路径(FollowPath)约束非常类似。但不是使用目标曲线计算时间,轴向限定(ClampTo)获得其自身的实际位置属性(在变换......
  • DHCP服务器的配置
    DHCP的配置过程服务器:WindowServer2016、客户端:Windows101、添加一块儿新网卡,让服务器和客户端保持同一网卡,并把客户机网卡设置为自动获取ip      ......