51单片机基础11——蓝牙模块控制亮灭

串口初试------蓝牙模块

    • 蓝牙模块的使用
      • [1. 软硬件条件](#1. 软硬件条件)
      • [2. 蓝牙模块](#2. 蓝牙模块)
      • [3. 代码(分文件处理之后的代码)](#3. 代码(分文件处理之后的代码))

蓝牙模块的使用

1. 软硬件条件

  • 单片机型号:STC89C52RC
  • 开发环境:KEIL4
  • 烧录软件串口通信软件:stc-isp
  • 蓝牙模块:HC-04
  • LED模块(高电平点亮)

2. 蓝牙模块

  1. 蓝牙模块的工作原理大致也是通过串口实现对数据的收发,只不过这里的数据传输通过手机与蓝牙直接的无线连接实现,最终数据传输到蓝牙模块,蓝牙再通过串口与单片机联系。
  2. HC-04 蓝牙模块简单易用,可以通过扫蓝牙上的二维码 下载对应app,通过app完成数据的传输。

注意蓝牙模块与单片机连接时 RXD ,TXD 交叉连接。

3. 代码(分文件处理之后的代码)

c 复制代码
#include <string.h>
#include "time.h"
#include "uart.h"
#include "config.h"
#define SIZE 3
char cmd[SIZE];

void init(){
	UartInit();
	testLed = 1;
	LED = OFF;
	Delay1000ms();
	testLed = 0;
}


void main(){
	init();
	while(1){
		sendString("hello world!\r\n");
		testLed = !testLed;
		Delay1000ms();
	}
}


void UartHandler() interrupt 4{
	static char i = 0;
	char tmp = SBUF;
	if(RI){
		RI = 0;
		if(i == SIZE || tmp == 'c' || tmp == 'o'){
			i = 0;
		}
		cmd[i++] = tmp;
		if(cmd[0] == 'o' && cmd[1] == 'p'){
			LED = ON;
			memset(cmd,'\0',SIZE);
		}
		if(cmd[0] == 'c' && cmd[1] == 'l'){
			LED = OFF;
			memset(cmd,'\0',SIZE);
		}
	}
	if(TI);
}

对于 串口初始化和串口发送字符串的函数封装到了 Uart 头文件中,具体实现详细见单片机基础10------串口实验

相关推荐
M78佐菲7 小时前
51单片机学习笔记:ds18b20要点整理
linux·笔记·嵌入式硬件·学习·51单片机
洪核单片机8 小时前
DPJ-96基于STM32单片机wifi远程监控智慧教室 温湿度光照粉尘人数考勤
stm32·单片机·嵌入式硬件·智慧教室·教室人数考勤
m0_7527531210 小时前
单片机基础知识
单片机·51单片机
天空'之城10 小时前
单片机基础核心知识点汇总(三十六)
单片机·嵌入式硬件
云泽80811 小时前
STM32 USART 详解(八):C I/O 串口重定向原理与实现
c语言·stm32·嵌入式硬件
ThornArmor11 小时前
重铸1996|肉体渲染:关节的裂缝:分段模型积木拼装与未成熟的 RSP 矩阵骨骼动画形变
c语言·汇编·c++·python·硬件架构·游戏机
T1mzhou11 小时前
ARM64 Linux 6.10 内核驱动(12):dd.c:probe/ remove、延迟 probe
linux·服务器·c语言·arm开发·arm
Doraemomo12 小时前
IMX6ULL裸机开发——系统主频和时钟配置
arm开发·嵌入式硬件·makefile·imx6ull
白色的北极熊13 小时前
c语言 scanf 输入流有空格,逗号 说明
c语言
Logic10113 小时前
C语言/数据结构位运算题解:异或XOR找出货船中的“独特载货量“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质