找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 475|回复: 3
打印 上一主题 下一主题
收起左侧

51单片机蓝牙数据传输问题?

[复制链接]
跳转到指定楼层
楼主
ID:1070602 发表于 2023-5-17 21:45 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
经过蓝牙传输数值比实际大了30左右,什么原因
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:645485 发表于 2023-5-18 01:42 | 只看该作者
啥都没有,怎么分析!
回复

使用道具 举报

板凳
ID:1070602 发表于 2023-5-18 10:07 来自手机 | 只看该作者
include <reg51.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int uchar temp1,temp2,temp,A; uchar sb[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,     0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0xBf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; sbit DQ=P3^7; void delay(uint t) {   uint j,k;   for(j=t;j>0;j--)    for(k=115;k>0;k--); } void display_1820(uchar x) {   uint i,ge,shi,xiao;  shi=(x/10);   ge=(x%10);   xiao=(x%10/10);   P0=sb[i];   for(i=0;i<4;i++)   {    if(i==0){P0=0x00;P0=sb[shi];P2=0xfd;delay(1);}    if(i==0){P0=0x00;P0=sb[ge]|0x80;P2=0xfb;delay(1);}    if(i==0){P0=0x00;P0=sb[xiao];P2=0xf7;delay(1);}   } } void delay_18b20(uint i) {   for(;i>0;i--); } void init() {   uchar x=0;   DQ=1;   delay_18b20(8);   DQ=0;   delay_18b20(80);   DQ=1;   delay_18b20(14);   x=DQ;   delay_18b20(20); } uchar read() {   uchar i=0;   uchar dat=0;   for(i=8;i>0;i--)   {     DQ=0;     dat>>=1;     DQ=1;     if(DQ)dat|=0x80;     delay_18b20(4);   }   return dat; } void write(uchar dat) {   uchar i=0;   for(i=8;i>0;i--)   {     DQ=0;     DQ=dat&0x01;     delay_18b20(5);     DQ=1;     dat>>=1;   } } uchar read1() {   uchar a=0,b=0,t=0;   init();   write(0xcc);   write(0x44);   delay_18b20(100);   init();   write(0xcc);   write(0xbe);   delay_18b20(100);   a=read();   b=read();   temp1=b<<8;   temp1+=(a&0x63)>>4;   temp2=a&0x63;   temp=((b*256+a)>>4);   return temp; } void UART_Init() {  TMOD&=0x63;  TMOD|=0x20;  TR1=1;  TH1=0xF3;  TL1=0xF3;   SCON=0x50;  PCON|=0x80;  ES=1;  EA=1; } void UART_SendByte(unsigned char Byte) {  SBUF=Byte;      while(TI==0);   TI=0;          } /*1ms=1,±1ms*/void delay_1ms(unsigned int _1ms){_1ms*=110;while(_1ms--){}} void main() {   UART_Init();   while(1)   {                 delay_1ms(5);     //A=read1();                 UART_SendByte(read1());     //display_1820(read1());   } } void UART_Routine() interrupt 4 {  if(RI==1)      {   P2=~SBUF;   UART_SendByte(SBUF);   RI=0;      } }
回复

使用道具 举报

地板
ID:123289 发表于 2023-5-18 10:37 | 只看该作者
由于用的是220,多30,恰到好处。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表