Ⅰ 关于单片机通过蓝牙将数据传输给手机,并在app上面显示出来怎么实现

首先是蓝牙通信,我想指出,如果你用的是蓝牙模块的话,那么它的单片机程序专与属串口的单片机程序差不多一样,只要你会串口操作,蓝牙也就解决了,如果不是用的蓝牙模块,另当别论。

然后是接受端手机这边,你应该懂一些java东西,知道怎么调用底层程序,编写读取串口程序,根据发送的协议,把接受的数据转化为十进制就可以了.


(1)蓝牙单片机传输系统扩展阅读

单片机采用51系列单片机用C51语言编写,通过sprintf构造JSON格式文件通过蓝牙串口模块发送到安卓手机,简要代码如下:

sprintf(msg,"{"RR":"%02x"}",(unsigned int )RRtemp);

Serial_print(msg);

这里涉及到Serial_print()函数如下:

void Serial_print(char *msg)

{

while (*msg != '') {

S2BUF = *msg;

while ((S2CON & S2TI) == 0);

S2CON &= ~S2TI;

msg++;

}

}

Ⅱ 关于蓝牙模块和单片机数据传输的问题

由于没有提供具体的芯片型号和电路,只能从信号传输的角度简单聊一下,欢迎追问,如果有错误请指出。
一般的蓝牙传输模块,比如MS47FS3,其实内部是有一个arm核心的,单片机和蓝牙模块之间的通讯可以看成两个mcu之间的通讯。通讯的过程要考虑的问题主要有两个,一个是通讯信号的质量问题,一个是通讯信号能否被识别,也就是通讯协议的问题。
首先,对于通讯信号的质量,简单的说是我们会期望我发出的高电平在接收时仍然是高电平,这时候我们会期望接收端的输入阻抗尽可能的大。为了实现这一要求,通常会在接收端前加入驱动电路。这个电路可以是简单的运放电路,可以是专用的收发芯片;但这对于简单的实验,这一点可能不是必须的。
通讯协议可能更加重要。首先,接收端和发送端应该是同样的通讯方式,比如其他回答中提到SPI(串行)或者并行。同样的通讯方式,对于电平的识别方式是否一致,比如232和485,就是普通的串行和差分的串行,就无法相互识别。
至于指令集的问题,我感觉只是你的通讯能够顺利建立之后,因为蓝牙模块本质也是一个arm芯片,如果你只给他通讯一个数据,他其实不知道要进行什么操作。这时候需要你通过指令集来告诉他,接收到这个数据之后,你希望他执行什么样的动作。

Ⅲ 蓝牙传输信号时单片机的工作原理

单片机通过蓝牙传输信号,一般都会使用集成好的蓝牙模块,采用透传的模式,用单片机的串口直接与蓝牙模块的串口连接。数据直接通过蓝牙模块传输后,直接转换成串口数据。单片机通过串口实现发送接收数据。