欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機+藍牙模塊接收數據能顯示十進制嗎?
[打印本頁]
作者:
羅大韓
時間:
2021-5-8 21:05
標題:
單片機+藍牙模塊接收數據能顯示十進制嗎?
就是我本來設置了藍牙向單片機發送1的話,單片機反饋回來的也是1,用串口助手軟件那個hex模式接收可以顯示接收回來1,但是手機接收的是0x01,我想接收到的也是1,可不可以實現呢?藍牙調試軟件只有16進制顯示啊
作者:
wulin
時間:
2021-5-9 06:29
用文本形式傳輸收發,加引號 '0' '1' '2'.......
作者:
羅大韓
時間:
2021-5-9 10:58
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int //用"uint"代替"unsigned int" 無符號整數
#define uchar unsigned char //用"uchar"代替"unsigned char" 無符號字符
unsigned char tmp;
sbit h1=P2^0; //四個紅外傳感器
sbit h2=P2^1;
sbit h3=P2^2;
sbit h4=P2^3;
uint shu=0;
uint ji1,ji2,ji3,ji4;
void init(); //串口初始化
void send(unsigned char a); //單字節發送函數
void ctrl(); //接收處理函數
void main()
{
init();
while(1)
{
if(RI==1) //是否有數據到來
{
RI = 0;
tmp = SBUF; //暫存接收到的數據
ctrl();
}
}
}
void init() //串口初始化
{
ES=0; //關中斷
SCON = 0x50; // REN=1允許串行接受狀態,串口工作模式1,
//10位UART(1位起始位,8位數據位,1位停止位,無奇偶校驗),波特率可變
TMOD = 0x20; //定時器1工作于方式2,8位自動重載模式,用于產生波特率
TH1=TL1=0xFD; //波特率9600
PCON &= 0x7f; //波特率不倍增
TR1 = 1; //定時器1開始工作,產生波特率
//發送標志位置0
TI=0; //接收標志位置0
RI=0;
//EA=0;
ES=1;
}
void send(unsigned char a) //單字節數據發送
{ //注意:若單片機TXD(P3.1)無上拉能力,必須在P3.1端接上拉電阻。本次測試需要接上拉電阻
TI=0;
SBUF=a;
while(TI==0);
TI=0;
}
void ctrl() //接收處理函數
{
switch(tmp)
{
case '1':
send(shu);
break;
}
if(ji1==0&&ji2==0&&ji3==0&&ji4==0) //如果四個紅外傳感器都感應到人
{
shu=4; //則說明4人到場
}
if(ji1==1&&ji2==1&&ji3==1&&ji4==1) //如果四個紅外傳感器都沒有感應到人
{
shu=0; //則0人到場,全部曠課
}
if(ji1==0&&ji2==0&&ji3==0&&ji4==1) //如果有三個傳感器感應到人,則說明三人到場
{
shu=3;
}
if(ji1==0&&ji2==0&&ji3==1&&ji4==0)
{
shu=3;
}
if(ji1==0&&ji2==1&&ji3==0&&ji4==0)
{
shu=3;
}
if(ji1==1&&ji2==0&&ji3==0&&ji4==0)
{
shu=3;
}
if(ji1==0&&ji2==0&&ji3==1&&ji4==1) //如果兩個傳感器感應到人,則兩人到場
{
shu=2;
}
if(ji1==1&&ji2==1&&ji3==0&&ji4==0)
{
shu=2;
}
if(ji1==0&&ji2==1&&ji3==1&&ji4==0)
{
shu=2;
}
if(ji1==1&&ji2==0&&ji3==0&&ji4==1)
{
shu=2;
}
if(ji1==0&&ji2==1&&ji3==0&&ji4==1)
{
shu=2;
}
if(ji1==1&&ji2==0&&ji3==1&&ji4==0)
{
shu=2;
}
if(ji1==0&&ji2==1&&ji3==1&&ji4==0)
{
shu=2;
}
if(ji1==1&&ji2==0&&ji3==0&&ji4==1)
{
shu=2;
}
if(ji1==0&&ji2==1&&ji3==1&&ji4==1) //如果有一個傳感器感應到人,說明一人到場
{
shu=1;
}
if(ji1==1&&ji2==0&&ji3==1&&ji4==1)
{
shu=1;
}
if(ji1==1&&ji2==1&&ji3==0&&ji4==1)
{
shu=1;
}
if(ji1==1&&ji2==1&&ji3==1&&ji4==0)
{
shu=1;
}
if(h1==0) //此處是紅外傳感器的感應觸發,無實際意義,下同
{
ji1=0; //低電平觸發
}
else
{
ji1=1;
}
if(h2==0)
{
ji2=0;
}
else
{
ji2=1;
}
if(h3==0)
{
ji3=0;
}
else
{
ji3=1;
}
if(h4==0)
{
ji4=0;
}
else
{
ji4=1;
}
}
作者:
羅大韓
時間:
2021-5-9 10:59
補充,這是源程序,shu是個變量,藍牙只能以16進制接收,文本接收的話是亂碼
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1