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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1443|回復: 4
打印 上一主題 下一主題
收起左側

角度傳感器串口輸出ASCII嗎,怎么提取ASCII的整數呢?

[復制鏈接]
跳轉到指定樓層
樓主
ID:259813 發表于 2024-10-22 14:23 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
例如角度傳感器輸出ASCII嗎258.123度,只想提取258,怎么提取?比較困惑,求助一下
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:161164 發表于 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. }
復制代碼
回復

使用道具 舉報

板凳
ID:1034262 發表于 2024-10-22 21:22 | 只看該作者
那就取數據到小數點結束就可以了。
回復

使用道具 舉報

地板
ID:21455 發表于 2024-10-24 08:45 | 只看該作者
atoi() 函數了解下
回復

使用道具 舉報

5#
ID:446156 發表于 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.                 /*如果收到的字符是數字則是有效數據*/
  22.                 else if((Buf[i] >= '0') && (Buf[i] <= '9'))
  23.                 {
  24.                         Data = Data*10 + Buf[i] - '0';
  25.             /*計算小數點后有幾位*/
  26.             if(PointEn != 0)
  27.             {
  28.                 PointCount++;
  29.             }
  30.                 }
  31.                 /*如果收到的字符不是數字但是上次收到的字符是數字則接收完成*/
  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. }
復制代碼


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表