- static float NumberResolution(char *Buf,uint8_t Star,uint8_t Stop)
- {
- uint8_t i=0;
- float Data=0;
- uint8_t PointCount=0;
- uint8_t PointEn=0;
- uint8_t Negative = 0;
-
- for(i=Star;i<Stop;i++)
- {
- if(Buf[i] == '-')
- {
- Negative = 1;
- Data = 0;
- }
- else if(Buf[i] == '.')
- {
- PointEn = 1;
- PointCount = 0;
- }
- /*如果收到的字符是數字則是有效數據*/
- else if((Buf[i] >= '0') && (Buf[i] <= '9'))
- {
- Data = Data*10 + Buf[i] - '0';
- /*計算小數點后有幾位*/
- if(PointEn != 0)
- {
- PointCount++;
- }
- }
- /*如果收到的字符不是數字但是上次收到的字符是數字則接收完成*/
- else if((Buf[i-1] >= '0') && (Buf[i-1] <= '9'))
- {
- break;
- }
- }
- for(i=0;i<PointCount;i++)
- {
- Data = Data/10;
- }
- if(Negative != 0)
- {
- Data = -Data;
- }
- return Data;
- }
復制代碼
|