• 大小: 30KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-11-11
  • 语言: C/C++
  • 标签: 蓝牙  

资源简介

蓝牙程序,非常实用,便于移植,可用于各种模块程序中。

资源截图

代码片段和文件信息

/******************************************
本程序实现的功能:
利用蓝牙模块,手机上的蓝牙调试助手和STC12之间实现通信
******************************************/
#include 
#include “stdio.h“
#define uint unsigned int
#define uchar unsigned char

#define S2RI  0x01          //S2CON.0
#define S2TI  0x02          //S2CON.1
#define S2RB8 0x04          //S2CON.2
#define S2TB8 0x08          //S2CON.3

uchar table0[20]=“i love you!“;   //STC12串口1接收字符串数组
uchar table1[20];    //STC12串口1接收字符串数组
uchar cnt0cnt1;

void Delay1000ms() //@11.0592MHz
{
unsigned char i j k;

i = 43;
j = 6;
k = 203;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}


/****************串行口1、2初始化函数****************/
void InitUART()
{ // 串口1波特率为115200bps
PCON &= 0x7F; //波特率不倍速
SCON = 0x50; //8位数据可变波特率,接收允许
AUXR |= 0x40; //定时器1时钟为Fosc即1T
AUXR &= 0xFE; //串口1选择定时器1为波特率发生器
TMOD &= 0x0F; //清除定时器1模式位
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 = 0xFD; //设定定时初值
TH1 = 0xFD; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
ES  = 1;         //开串口1中断

//串口2波特率为115200bps
AUXR &= 0xF7; //波特率不倍速
S2CON = 0x50; //8位数据可变波特率
AUXR |= 0x04; //独立波特率发生器时钟为Fosc即1T
BRT = 0xFD; //设定独立波特率发生器重装值
AUXR |= 0x10; //启动独立波特率发生器
    IE2 =0x01; //开串口2中断  ES2=1

EA=1;    //开总中断
}

 char putchar1(unsigned char dat) //使用串口1发送1字节,执行此函数后会有返回值
{
TI=0;
SBUF=dat; //使用串口发送数据
while(!TI);  //等待发送完毕
TI=0; //申请串口中断标志置零

return SBUF;  //返回串口发送缓冲器的数据
}

/********************************************\
|*       功能: 串口1发送字符串子函数    *|
\********************************************/
void UART_1PutString(unsigned char *buf)
 {
while(*buf)
      putchar1(*buf++);
}

void putchar2(unsigned char c) //串行口2发送一个字节
{
    S2BUF = c;
    while(!(S2CON&S2TI));  //若S2TI=0,在此等待
    S2CON&=~S2TI;   //S2TI=0
}

/********************************************\
|*       功能: 串口2发送字符串子函数    *|
\********************************************/
void UART_2PutString(unsigned char *buf)
 {
while(*buf)
      putchar2(*buf++);
}
void main()

InitUART();    //初始化串口1、串口2
while(1)
{
   UART_2PutString(table0); //串口2发送数据到手机蓝牙调试助手
   UART_1PutString(table1);  //串口1发送手机蓝牙调试助手发来的数据到PC
   cnt1=0;
   Delay1000ms();
}
}

/************串行口1中断处理函数*************/
void UART_1Interrupt(void) interrupt 4
{
if(RI==1)
{
RI=0;
table1[cnt0]=SBUF;
cnt0++;
}
}

/************串行口2中断处理函数*************/
void UART_2Interrupt(void) interrupt 8
{
if(S2CON&S2RI)
{
S2CON&=~S2RI;
table1[cnt1]=S2BUF;
cnt1++;

}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-01-13 22:30  蓝牙模块调试\
     文件         926  2014-09-26 17:57  蓝牙模块调试\main.lst
     文件        2459  2014-09-26 17:57  蓝牙模块调试\main.obj
     文件         830  2014-09-26 17:57  蓝牙模块调试\usart.lst
     文件        2870  2014-09-26 17:57  蓝牙模块调试\usart.obj
     文件        6466  2015-01-12 15:33  蓝牙模块调试\蓝牙模块.LST
     文件        8855  2015-01-12 15:33  蓝牙模块调试\蓝牙模块.OBJ
     文件        2967  2015-01-12 17:43  蓝牙模块调试\蓝牙模块.c
     文件        7851  2015-01-12 15:33  蓝牙模块调试\蓝牙模块调试
     文件        9635  2015-01-12 15:33  蓝牙模块调试\蓝牙模块调试.M51
     文件        1407  2015-01-12 15:33  蓝牙模块调试\蓝牙模块调试.hex
     文件          52  2015-01-12 15:33  蓝牙模块调试\蓝牙模块调试.lnp
     文件         181  2015-01-13 22:30  蓝牙模块调试\蓝牙模块调试.plg
     文件       55234  2015-01-13 22:30  蓝牙模块调试\蓝牙模块调试.uvopt
     文件       13282  2014-09-27 16:42  蓝牙模块调试\蓝牙模块调试.uvproj
     文件       55234  2015-01-13 22:08  蓝牙模块调试\蓝牙模块调试_uvopt.bak
     文件       13482  2014-09-26 18:23  蓝牙模块调试\蓝牙模块调试_uvproj.bak

评论

共有 条评论