| 
在线时间96 小时
UID3167208
注册时间2015-10-21
NXP金币0 
 TA的每日心情|  | 开心 2019-3-22 20:15
 | 
|---|
 签到天数: 21 天 连续签到: 1 天 [LV.4]偶尔看看III 高级会员 
 
 
	积分909 
最后登录2019-4-7 | 
 
 
 楼主|
发表于 2015-11-10 09:43:48
|
显示全部楼层 
| 本帖最后由 噬猎者 于 2015-11-10 15:38 编辑 
 七、ADC模块
 
 对于ADC库没什么好讲的,山外的库写的很完善只需要会用这几个就可以了
 
 这是我写的printf_float()函数,方便串口检测电压复制代码/***************************   ADC学习   ***************************************
extern void     adc_init    (ADCn_Ch_e);                //ADC初始化
extern uint16   adc_once    (ADCn_Ch_e, ADC_nbit);      //采集一次一路模拟量的AD值
        ADCn_Ch_e//ADC通道
        ADC_nbit//n = 8,12,16
extern void     adc_stop    (ADCn_e);                   //停止ADC转换
*******************************************************************************/
 好了剩下的看我的程序吧:复制代码void printf_float(float data)  //     printf_float(-30.00102);
{
  char k[10],ch[20];
  char s[10]={'0','1','2','3','4','5','6','7','8','9'};
  int        i=0,j=1;
  long   data0;
  data0 = data;
  data -= data0;
  if(data0<0)
  {
    ch[i++] = '-';
    data0 = -data0;
    data = -data;
  }
  do
  {
          k[j++]=s[data0%10];
          data0/=10;
  }while(data0!=0);
  for(j--;j>0;j--)
  {
          ch[i++]=k[j];
  }
  data0=data*10000+0.5;//保留四位小数
  if(data0!=0)
  {
          ch[i++]='.';
        j=1;
        for(j=1;j<=4;j++)
          {
                  k[j]=s[data0%10];
                  data0/=10;
          }
          for(j=4;j>0;j--)
          {
                  ch[i++]=k[j];
          }
  }
  ch[i++] = '\0';
  printf("%s",ch);
}
 5.ADC.zip
(1.7 MB, 下载次数: 26) | 
 |