资源简介
蓝牙程序,非常实用,便于移植,可用于各种模块程序中。
代码片段和文件信息
/******************************************
本程序实现的功能:
利用蓝牙模块,手机上的蓝牙调试助手和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
- 上一篇:经典平差程序
- 下一篇:GL studio licese.rar
相关资源
- stm32蓝牙小车
- 蓝牙控制LED
- C++实现的蓝牙应用程序框架-BlueSolei
- 超声波测距及蓝牙模块源码程序c语言
- VC++2008开发Windows蓝牙通信程序
- 调用蓝牙打印机源代码
- C++ 基于蓝牙的通信 代码
- 蓝牙app控制STM32单片机的LED灯
- 《青风带你学蓝牙》nrf52832电子书
- sbc子带压缩编解码算法C语言
- 使用微软蓝牙API的
- Arduino小车的程序c++/c可以实现红外对
- 蓝牙协议源代码C语言写的
- 基于MSP430G2553的蓝牙控制程序
- 蓝牙四轴虚拟摇杆,油门控制
- 蓝牙小车(BluetoothCar)
- 裸跑蓝牙DW1000
- ATMEL tiny85做一个小的RGB蓝牙控制器(
- 杰里芯片蓝牙TWS耳机编程数据手册
- 蓝牙串口通信(源码+视频)
- 语音代码论文:CSR86708675DSP算法EQ动态
- msp430单片机蓝牙电机代码
- 蓝牙模块通信
- 基于stm32的蓝牙通信
- c++ 蓝牙编程
- 蓝牙例程,C++编程
- VC++蓝牙SDK源码
评论
共有 条评论