|
十進(jìn)制的數(shù)字無(wú)法顯示在手機(jī)的藍(lán)牙串口助手,想問(wèn)問(wèn)這是怎么回事?
智能灌溉的,我是想進(jìn)行灌溉次數(shù)統(tǒng)計(jì),把灌溉次數(shù)實(shí)時(shí)地傳到手機(jī)上,我分成3個(gè)統(tǒng)計(jì):手動(dòng)次數(shù),自動(dòng)次數(shù),藍(lán)牙次數(shù)。我用的是數(shù)組,每天進(jìn)行一次,指針向后移動(dòng)一位。
下面這個(gè)是向藍(lán)牙發(fā)送的數(shù)據(jù):
void send_stus() //數(shù)據(jù)發(fā)送
{
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("次數(shù):");
send_string("\r\n");
send_string("自動(dòng):");
IntConversionChar(ztcs);
send_string("\r\n");
send_string("手動(dòng):");
IntConversionChar(stcs);
send_string("\r\n");
send_string("藍(lán)牙:");
IntConversionChar(lycs);
send_string("\r\n");
}
void send_byte(uchar by){
ES=0;
SBUF = by;
while(!TI);//當(dāng)寫(xiě)下這句的時(shí)候,就不要在中斷函數(shù)里面在寫(xiě)TI = 0;這句了,不然進(jìn)入中斷函數(shù)將TI清零之后,程序就會(huì)一直卡在這里
TI = 0; //在這里將TI清零
ES=1;
}
/*發(fā)送一個(gè)字符串*/
void send_string(uchar *p){
while(*p!= '\0'){
send_byte(*p);
p++;
}
}
void IntConversionChar(uint number)
{
uint model; //模
uint numberByte; //十進(jìn)制數(shù)據(jù)不同位上的值
for(model=10;model>=1;model=model/10) //model的取值根據(jù)實(shí)際需要選擇,選擇過(guò)大會(huì)浪費(fèi)資源
{
numberByte = number/model; //相除取整
//當(dāng)取到整數(shù)數(shù)據(jù)的最高位時(shí),將其加上0x30或者48并轉(zhuǎn)為字符型后發(fā)送
if(numberByte >=1 ) send_byte((uchar)(numberByte%10+0x30));
//if(numberByte >=1 ) PostChar((unsigned char)(numberByte%10+48));
}
}
|
-
-
手動(dòng)次數(shù)
-
藍(lán)牙次數(shù)
-
自動(dòng)次數(shù)
-
主函數(shù)
-
手機(jī)app顯示
|