#基于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);
数据部分与LCD1602输出的数据相同,但是为什么会出现乱码呢,请帮忙看看谢谢