stm32 字符串转换为整数

今天在使用wifi模块连接路由器的时候得出wifi的信号强度,由于信号强度正常一般在-30 dbm ~ -85 dbm之间

我获取到的信号强度字符串是-43,我是先在c编辑器上实现可以把字符串转化为整数后再把它放在总的程序上的,在c编译器的代码如下:

#include <stdio.h>  
#include <string.h>  
#include <stdlib.h>

int main(void)

{

 char temp[10]; //数组转换
 int i=0;   //次数
 int h;     //最后得出的信号强度值-43
 char *a;  //a指针,指向所要的地址
 char *p;  //p指针,指向字符串
 char *delims={","}; //分隔逗号

 p=strtok("+CWJAP_DEF:STD,2c:57:31:fb:5d:32,6,-43",delims); 
 while(p!=NULL){ 
     for(i=0;i<4;i++)     //循环四次
      {
        printf("word: %s\n",p); 
        p=strtok(NULL,delims);     
        if(i==2)   //第三个刚好是-43,把它提取出来
        a=p;    //提取-43的值然后赋值给a(还是字符串形式)
      }

  } 
  printf("%s\n",a); //打印a字符串

  strcpy(temp,a); //temp copy 字符串(取整数的)

  //-43的字符串copy到temp,所以temp[0]:负号  temp[1]:4  temp[2]:3
  h = ((temp[1]-'0')*10+(temp[2]-'0'))*(-1);  //由于转化后变成正整数所以要乘以负一
  printf("h = %d\r\n",h);  //信号强度 -43

  return h;

}

 

说明:

由于本例程主要是获取wifi信号强度值,而且信号强度值范围在-30至-85,所以程序中那段乘以负一的操作是可行的,具体使用还得根据个人的需要去改动,本例程主要是使用字符串函数进行书写,while程序那部分是引用别人的,具体是那篇博客我忘记,等我找到了再把转载路径贴上来。

主要函数 char *strtok(char s[], const char *delim);

s为要分解的字符,delim为分隔符字符(如果传入字符串,则传入的字符串中每个字符均为分割符)。首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值