亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標(biāo)題: 角度傳感器串口輸出ASCII嗎,怎么提取ASCII的整數(shù)呢? [打印本頁]

作者: chydn2000    時(shí)間: 2024-10-22 14:23
標(biāo)題: 角度傳感器串口輸出ASCII嗎,怎么提取ASCII的整數(shù)呢?
例如角度傳感器輸出ASCII嗎258.123度,只想提取258,怎么提取?比較困惑,求助一下

作者: lkc8210    時(shí)間: 2024-10-22 15:18


  1. uint ASCII_Convert(uchar * ptdat)
  2. {
  3.         uint Angle = 0;
  4.         uchar i = 0;
  5.         while(ptdat[i]>='0' && ptdat[i] <='9')
  6.         {
  7.                 Angle*=10;
  8.                 Angle+=ptdat[i]-'0';
  9.                 i++;
  10.         }
  11.         return Angle;
  12. }

  13. void main()
  14. {
  15.         uchar *AngleRaw = "258.123";
  16.         uint AngleGet = ASCII_Convert(AngleRaw);
  17.         while(1);
  18. }
復(fù)制代碼

作者: coody_sz    時(shí)間: 2024-10-22 21:22
那就取數(shù)據(jù)到小數(shù)點(diǎn)結(jié)束就可以了。
作者: csmjmcc    時(shí)間: 2024-10-24 08:45
atoi() 函數(shù)了解下
作者: qinlu123    時(shí)間: 2024-10-24 13:03
  1. static float NumberResolution(char *Buf,uint8_t Star,uint8_t Stop)
  2. {
  3.         uint8_t i=0;
  4.         float Data=0;
  5.     uint8_t PointCount=0;
  6.     uint8_t PointEn=0;
  7.         uint8_t Negative = 0;
  8.        
  9.         for(i=Star;i<Stop;i++)
  10.         {
  11.                 if(Buf[i] == '-')
  12.                 {
  13.                         Negative = 1;
  14.                         Data = 0;
  15.                 }
  16.         else if(Buf[i] == '.')
  17.         {
  18.             PointEn = 1;
  19.             PointCount = 0;
  20.         }
  21.                 /*如果收到的字符是數(shù)字則是有效數(shù)據(jù)*/
  22.                 else if((Buf[i] >= '0') && (Buf[i] <= '9'))
  23.                 {
  24.                         Data = Data*10 + Buf[i] - '0';
  25.             /*計(jì)算小數(shù)點(diǎn)后有幾位*/
  26.             if(PointEn != 0)
  27.             {
  28.                 PointCount++;
  29.             }
  30.                 }
  31.                 /*如果收到的字符不是數(shù)字但是上次收到的字符是數(shù)字則接收完成*/
  32.                 else if((Buf[i-1] >= '0') && (Buf[i-1] <= '9'))
  33.                 {
  34.                         break;
  35.                 }
  36.         }
  37.     for(i=0;i<PointCount;i++)
  38.     {
  39.         Data = Data/10;
  40.     }
  41.         if(Negative != 0)
  42.         {
  43.                 Data = -Data;
  44.         }
  45.         return Data;
  46. }
復(fù)制代碼







歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1