尘世- 2023-04-03 19:34 采纳率: 80%
浏览 36
已结题

基于51单片机的蓝牙模块的数据传输(标签-51单片机)

#基于51单片机与HC04蓝牙模块的使用中在正确的数据的最后两位为固定的乱码在修改传输的位置上发现并无不同,传输的数据,是HC—SR04超声波模块(利用定时计数器获取的数据,在将其完全转化为整数后问题依旧存在修改输出位数后乱码有所变化)蓝牙模块的代码如下:

void transfer_HC04(uchar character)
{    
    SBUF=character;
    //UART_init();
    while(!TI);
    TI=0;
    Delay20us();
}
void  PostString(uchar*p)  
{  
        while(*p)         //若指针指向的地址为空,则跳出循环
        {  
            transfer_HC04(*p); //指针第一次默认指向首地址
            Delay20us();  //延时,作用为提高发送准确度
            p++;  
        }      
}
void IntConversionChar(uint number)
{
       uint model;    //模
       uint numberByte; //十进制数据不同位上的值
       number=value;
       for(model=10000;model>=1;model=model/10) //model的取值根据实际需要选择,选择过大会浪费资源
      {
            numberByte=number/model;    //相除取整
            //当取到整数数据的最高位时,将其加上0x30或者48并转为字符型后发送
           if(numberByte>=1)
           {
            transfer_HC04((uchar)(numberByte%10+0x30));
              //if(numberByte >=1 )transfer_HC04((unsigned char)(numberByte%10+48));
           }  
      }    
      transfer_HC04((uchar)(77));
      transfer_HC04((uchar)(77));
}

数据部分的代码如下:


     time=TH0*256+TL0;
     TH0=0;
     TL0=0;
     S=(time*1.7)/100;     //算出来是CM
     value=(time*1.7);

img

img


数据部分与LCD1602输出的数据相同,但是为什么会出现乱码呢,请帮忙看看谢谢

  • 写回答

2条回答 默认 最新

  • 丘比特惩罚陆 Java领域新星创作者 2023-04-04 08:35
    关注

    问题似乎出在IntConversionChar函数中,这个函数将一个整数值转换成字符串并传输到蓝牙模块上。在这个函数中,您使用了一个for循环来逐位处理整数值,并将每个数字转换为字符型后传输到蓝牙模块上。

    您提到在传输的数据的最后两位存在固定的乱码。根据您的代码,您在数据传输完成后,添加了两个固定值77,这可能是导致乱码的原因。建议您检查一下是否有必要添加这两个固定值。

    此外,在for循环中,您在处理整数值的最高位时,将其加上0x30或者48并转换为字符型后发送。建议您添加一个判断,如果整数值的最高位为0,不要将其转换为字符型后发送,而是跳过该位。这可能会导致一些输出位数上的变化,但可能会解决乱码问题。

    最后,建议您检查一下蓝牙模块的参数设置是否正确,例如波特率等,这可能也会导致数据传输出现问题。有用记得给个关注支持一下!!!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月14日
  • 已采纳回答 4月6日
  • 创建了问题 4月3日

悬赏问题

  • ¥15 我需要全国每个城市的最新小区名字等数据。
  • ¥15 开发一个小区生态的小程序
  • ¥15 MddBootstrapInitialize2失败
  • ¥15 LCD Flicker
  • ¥15 Spring MVC项目,访问不到相应的控制器方法
  • ¥15 esp32在micropython环境下使用ssl/tls连接mqtt服务器出现以下报错Connected on 192.168.154.223发生意外错误: 5无法连接到 MQTT 代理,如何解决?
  • ¥15 关于#genesiscsheel#的问题,如何解决?
  • ¥15 Android aidl for hal
  • ¥15 STM32CubeIDE下载程序报错
  • ¥15 微信好友如何转变为会员系统?(相关搜索:小程序)