BT04蓝牙与手机通信程序控制LED灯闪烁为何不行,不知道哪里有问题,求助各位大神!!

BT04蓝牙与手机通信程序控制LED灯闪烁为何不行,不知道哪里有问题,求助各位大神!!,第1张

搜索不到蓝牙的一般原因及处理方法:一,一般都会认为打开蓝牙 之后,手机就能搜索到蓝牙,并且成功与之连接,其实这是错误的。若要手机搜索到蓝牙,蓝牙就必须进入一个特殊 的状态:配对状态。二,具体 *** 作步骤:1、确认蓝牙处于关机状态 :长按多功能键2-3秒 ,蓝牙指示红灯快速闪烁3次左右,即关闭蓝牙。2、蓝牙进入配对状态:长按多功 能键7-8秒,蓝牙进入配对状 态,表现为指示 灯红蓝两 种颜色交替快 速闪烁或者是指示灯常亮。三,蓝牙成功进入配对状态后,接下 来进入手机的 *** 作:1、打开手机的蓝牙功能,搜索蓝牙的型号。2、手机与蓝牙连接,如果提示输入pin码,一般为0000或1234。3、配对成功。这时就可以用蓝牙接听、打电话了,如果 蓝牙支持A2DP协议,还可以用来听音乐。

接收蓝牙模块的数据;根据这个需求就定性了;服务器===>蓝牙模块; 客户端===>手机app;

如果是经典蓝牙: 1、建立蓝牙连接 2创建bluetoothSocket 开启线程接收模块返回的信息

如果是ble 根据API 文档在相关回调中处理服务器返回的信息。

/

程序名称:hc595c

程序功能:595的应用文件

程序作者:吴鉴鹰

创建时间:2014-3-10

修改时间:

程序版本:V01

/

/

包含头文件

/

#include "inc/hc595h"

#include "reg51h"

/

定义引脚

/

/ 时钟信号线引脚定义 /

sbit HC595CLK = P0^5;

/ 片选信号线引脚定义 /

sbit HC595RCK = P0^6;

/ 数据输入引脚定义 /

sbit HC595DATA = P0^7;

/

函数名称:SendData

函数功能:74HC595数据的发送

入口参数:unsigned int uiDataOne, unsigned int uiDataTwo

出口参数:void

/

void SendData(unsigned int uiDataOne, unsigned int uiDataTwo)

{

unsigned int i = 0;

/ 将片选信号置为低电平 /

HC595RCK = 0;

/ 输入第一个数据:uiDataOne /

for (i = 0; i < 8; i++)

{

/ 给出脉冲信号,首先将CLK置为0 /

HC595CLK = 0;

if (0 != (uiDataOne & 0x80))

{

HC595DATA = 1;

}

else

{

HC595DATA = 0;

}

/ 给出脉冲信号,首先将CLK置为1 /

HC595CLK = 1;

/ 准备第二个数据 /

uiDataOne = uiDataOne << 1;

}

/ 输入第二个数据:uiDataTwo /

for (i = 0; i < 8; i++)

{

/ 给出脉冲信号,首先将CLK置为0 /

HC595CLK = 0;

if (0 != (uiDataTwo & 0x80))

{

HC595DATA = 1;

}

else

{

HC595DATA = 0;

}

/ 给出脉冲信号,首先将CLK置为1 /

HC595CLK = 1;

/ 准备第二个数据 /

uiDataTwo = uiDataTwo << 1;

}

/ 将片选信号置为高电平 /

HC595RCK = 1;

}

有3个明显的问题:

1,你的程序已经开放了串口中断EA=1;ES = 1,为什么还用查询的方式读取串口数据?这样,蓝牙模块向单片机发送数据,单片机的程序就会发生中断,你的程序没有对中断进行任何处理,怎能不出错呢!

2, init();

while(1)

{ ;这里不应该有这个分号

3,你用uint定义了ma,mb,mc,然后ma = SBUF;switch(ma),从串口接收的是字符类型数据,而你定义的uint类型的ma是错误的,而应该是uchar ma。

你的程序这样修改后试试:

#include<STC12C5A60S2h>

//#include<reg52h>

#define uchar unsigned char

#define uint unsigned int

uchar ma;//这样修改

uint mb,mc;

sbit led1 = P0^0 ;//1

sbit led2 = P0^1 ;//2

sbit led3 = P0^2 ;//3

sbit led4 = P0^3 ;//4

sbit led5 = P0^4 ;//5

sbit led6 = P0^5 ;//6

sbit led7 = P0^6 ;//7

sbit led8 = P0^7 ;//8

void init()

{

TMOD=0x20;//设置定时器1为工作方式2

SCON=0x50;

TH1=0xfd;

TL1=0xfd;

TR1=1;

EA=0;//关闭全局中断

ES=0;//关闭串口中断

}

void main()

{

init();

while(1)

{ //去掉这里的分号

while(RI==0);

RI=0;

ma=SBUF;

switch(ma)

{

case '1':led1=0;break; //1

case '2':led2=0;break; //2

case '3':led3=0;break; //3

case '4':led4=0;break; //4

case '5':led5=0;break; //5

case '6':led6=0;break; //6

case '7':led7=0;break; //7

case '8':led8=0;break; //8

case 'a':led1=1;break; //停

case 'b':led2=1;break; //停

case 'c':led3=1;break; //停

case 'd':led4=1;break; //停

case 'e':led5=1;break; //停

case 'f':led6=1;break; //停

case 'g':led7=1;break; //停

case 'h':led8=1;break; //停

}

}

}

先这样试试,有问题继续追问。

以上就是关于BT04蓝牙与手机通信程序控制LED灯闪烁为何不行,不知道哪里有问题,求助各位大神!!全部的内容,包括:BT04蓝牙与手机通信程序控制LED灯闪烁为何不行,不知道哪里有问题,求助各位大神!!、用Android studio 制作一个能接收蓝牙模块数据的app,客户端和服务器端的程序都写在Android studio里面吗、手机怎么通过蓝牙串口模块hc05控制单片机的一个LED发光吗具体怎么 *** 作。。。需要写先下载什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9526630.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存