项目场景:
通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 1s (自己可设定)传输一批传感器数据
最近在封装一些传感器的程序,在通过蓝牙连接手机调试数据的时候遇到的一点小问题。蓝牙的介绍网上有很多,这里就不说。把51代码丢出来供大家移植。
问题描述
通过蓝牙发送浮点型、整型等变量数据,但是在网上找了很多,大多都是发送单个字符和字符串的。
解决方案:
上代码:
/**************************************************************************************
实验现象:下载程序后打开串口调试助手,将波特率设置为9600,这里是每隔0.5S输出i自加,即从1一直往
上加
接线说明: 蓝牙端 TX--单片机端 RX
蓝牙端 RX--单片机端 TX
注意事项:
***************************************************************************************/
#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
#include <stdio.h>
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char uchar;
sbit KEY=P3^2;
void Delay_ms(unsigned int n)
{
unsigned int i,j;
for(i=0;i<n;i++)
for(j=0;j<123;j++);
}
/*******************************************************************************
* 函数名 :UsartInit()
* 函数功能 :设置串口
* 输入 : 无
* 输出 : 无
*******************************************************************************/
/*串口初始化配置*/
void UartConfiguration()
{
TMOD=0x20; //设置计数器1的工作方式2
TH1=0xfd; //设置计数器1的初值,决定波特率
TL1=0xfd; //设置计数器1的初值,决定波特率
PCON=0x00; // 波特率倍增0x00不加倍 0x80加倍
SCON=0x50; //设置工作方式1 开启接受允许
EA=1; //开启总中断
ES=1; //开启串口接受中断
TR1=1; //计数器1开始运行
}
/*发送数据*/
void sendDate(unsigned char date)
{
SBUF=date; //接收到的数据放入发送缓存器发送
while(!TI); //等待发送数据完成
TI=0; //清除发送完成标志位
}
//发送字符串
void SendString(unsigned char *p)
{
while(*p)
{
sendDate(*p);
p++;
}
}
char putchar(char c)
{
//输出重定向到串口
sendDate(c);
return c; //返回给函数的调用者printf
}
int i=0;
unsigned char zh[3]={0,0,0,};
/*主函数*/
void main()
{
UartConfiguration();
Delay_ms(100);
while(1)
{
i++;
printf("%d",i);
Delay_ms(500);
}
}
/*中断函数*/
void Uart() interrupt 4
{
uchar date;
date=SBUF; //取出接受到的数据
RI=0; //清除接受中断标志位
//收到的数据是date
}
主要就是加入一段输出重定向,像打印到电脑那样直接打印出来
char putchar(char c)
{
//输出重定向到串口
sendDate(c);
return c; //返回给函数的调用者printf
}
随便找个手机端的SPP串口APP就能将数据打印出来,再通过按键返回值调试参数
文章来源:https://www.toymoban.com/news/detail-502671.html
上位机下载:上位机下载https://download.csdn.net/download/weixin_52763107/88562391文章来源地址https://www.toymoban.com/news/detail-502671.html
到了这里,关于基于51单片机hc-05,hc-06蓝牙传送数据到手机APP的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!