找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1267|回复: 2
收起左侧

单片机蓝牙十进制通信

[复制链接]
ID:714854 发表于 2020-5-3 10:02 | 显示全部楼层 |阅读模式
十进制的数字无法显示在手机的蓝牙串口助手,想问问这是怎么回事?
智能灌溉的,我是想进行灌溉次数统计,把灌溉次数实时地传到手机上,我分成3个统计:手动次数,自动次数,蓝牙次数。我用的是数组,每天进行一次,指针向后移动一位。
下面这个是向蓝牙发送的数据:
void send_stus()  //数据发送
{

        send_string("湿度1:");  
        send_byte(RH_1/10+0X30);
        send_byte(RH_1%10+0X30);
        send_byte('%');
        send_string("\r\n");
        send_string("湿度2:");  
        send_byte(RH_2/10+0X30);
        send_byte(RH_2%10+0X30);
        send_byte('%');
        send_string("\r\n");
    send_string("温度1:");
        send_byte(TH_1/10+0X30);
        send_byte(TH_1%10+0X30);
        send_byte(0XA1);
        send_byte(0XE6);
        send_string("\r\n");
        send_string("温度2:");
        send_byte(TH_2/10+0X30);
        send_byte(TH_2%10+0X30);
        send_byte(0XA1);
        send_byte(0XE6);
        send_string("\r\n");
    send_string("光照:");
        send_byte(GZ/10+0X30);
        send_byte(GZ%10+0X30);
        send_byte('%');
        send_string("\r\n");
        send_string("次数:");
    send_string("\r\n");
    send_string("自动:");
    IntConversionChar(ztcs);
        send_string("\r\n");
    send_string("手动:");
    IntConversionChar(stcs);
        send_string("\r\n");
    send_string("蓝牙:");
    IntConversionChar(lycs);
        send_string("\r\n");


}


void send_byte(uchar by){
    ES=0;
    SBUF = by;
    while(!TI);//当写下这句的时候,就不要在中断函数里面在写TI = 0;这句了,不然进入中断函数将TI清零之后,程序就会一直卡在这里
    TI = 0;       //在这里将TI清零
          ES=1;
}
/*发送一个字符串*/
void send_string(uchar *p){

    while(*p!= '\0'){

        send_byte(*p);
        p++;

    }
}

void IntConversionChar(uint number)
{
       uint model;        //模
       uint numberByte; //十进制数据不同位上的值

     for(model=10;model>=1;model=model/10) //model的取值根据实际需要选择,选择过大会浪费资源

      {
            numberByte = number/model;        //相除取整
                        //当取到整数数据的最高位时,将其加上0x30或者48并转为字符型后发送
            if(numberByte >=1 ) send_byte((uchar)(numberByte%10+0x30));
                      //if(numberByte >=1 ) PostChar((unsigned char)(numberByte%10+48));
          }       
}





程序1.jpg

手动次数

手动次数

蓝牙次数

蓝牙次数

自动次数

自动次数

主函数

主函数

手机app显示

手机app显示
回复

使用道具 举报

ID:714854 发表于 2020-5-3 10:18 | 显示全部楼层
次数那里会显示乱码,不会从1开始计数
回复

使用道具 举报

ID:714854 发表于 2020-5-4 10:45 | 显示全部楼层
已解决,直接设置数组内容是ASCII码
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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