在线时间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库没什么好讲的,山外的库写的很完善只需要会用这几个就可以了
- /*************************** 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转换
- *******************************************************************************/
复制代码 这是我写的printf_float()函数,方便串口检测电压
- 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)
|
|