日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

单片机传输浮点数给android,请问单片机怎么接收从串口发送过来的浮点数?

發布時間:2024/7/23 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单片机传输浮点数给android,请问单片机怎么接收从串口发送过来的浮点数? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如題,單片機接收串口發送的浮點數,然后進行處理,我想的是建立一個二維數組,想把浮點數一位一位的存到數組里,因為要接收多個浮點數所以用了二維數組,可是實際發現是不可行的,請問到底應該怎么接收啊。以下是我寫的串口數據接收代碼,還請各位大神指點一下,我實在是不知道該怎么辦了。

void init()//串口初始化

{

SCON=0x50;? ?? ???//串口:方式1,允許發送和接收

TMOD=0x20;? ?? ???//定時器1:模式2,8位自動重裝模式,用于產生波特率

TH1=0xfd;

TL1=0xfd;

TR1=1;

SM0=0;? ?? ?? ?? ?//串口工作方式1

SM1=1;? ?? ?? ?? ?//串口工作方式1

REN=1;? ?? ?? ?? ?//允許串行口接收數據

EA=1;? ?? ?? ?? ? //開總中斷

ES=1;? ? ? ?? ?? ?? ?? ? //打開串口中斷

}

int strTransform(char *p)? ?//字符處理函數

{

float f = atof(p);? ?? ?//將字符轉換成浮點數

int n = (int)(f * 100 + 0.5);??//四舍五入

//? ? char *q = new char[strlen(p)];

//? ? strcpy(q, p);

//? ? q [6] = '\0';

//? ? printf("%s\n", q);

return n;

}

void main()

{

init();

while(1)

{

if(flag==1)

{

ES=0; //關閉串口中斷

GSM_Sent_Text_Message();

ES=1;

flag=0;//如果發送完數據之后flag不置0,則會一直處于發送狀態,模塊將不停地發短信

Delay_ms(300);

//printf("sent message");

}

}

}

void ser() interrupt 4??//串口中斷服務程序

{

RI=0;//接收中斷標志位,停止接收

for(row=0;row<8;row++)

{

for(column=0;column<9;column++)

{

strRcv[row][column]=SBUF;? ?? ?//將接收緩存里面的數據存放到數組

}

switch(row)

{

case 0:

sprintf(string0,"%9s",strRcv[row]);//將接收的每個數據提取出來,以便后面對數據進行處理

//char *a1=(char*)malloc(5);

// n=strTransform(string0);

sprintf(a0,"%04d",strTransform(string0));

break;

case 1:

sprintf(string1,"%9s",strRcv[row]);

sprintf(a1,"%04d",strTransform(string1));

break;

case 2:

sprintf(string2,"%9s",strRcv[row]);

sprintf(a2,"%04d",strTransform(string2));

break;

case 3:

sprintf(string3,"%9s",strRcv[row]);

sprintf(a3,"%04d",strTransform(string3));

break;

case 4:

sprintf(string4,"%9s",strRcv[row]);

sprintf(a4,"%04d",strTransform(string4));

break;

case 5:

sprintf(string5,"%9s",strRcv[row]);

sprintf(a5,"%04d",strTransform(string5));

break;

case 6:

sprintf(string6,"%9s",strRcv[row]);

sprintf(a6,"%04d",strTransform(string6));

break;

case 7:

sprintf(string7,"%9s",strRcv[row]);

sprintf(a7,"%04d",strTransform(string7));

break;

}

}

strdata=strcat(strdata,a0);

strdata=strcat(strdata,a1);

strdata=strcat(strdata,a2);

strdata=strcat(strdata,a3);

strdata=strcat(strdata,a4);

strdata=strcat(strdata,a6);

strdata=strcat(strdata,a7);

flag=1;//產生中斷標志

//RI=1;

}

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的单片机传输浮点数给android,请问单片机怎么接收从串口发送过来的浮点数?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。