查看: 2595|回复: 1

[已解决] KL16的ADC16bit模式转换值只有实际一半

[复制链接]

该用户从未签到

2

主题

3

帖子

0

新手上路

Rank: 1

积分
22
最后登录
2017-12-6
发表于 2017-12-6 15:51:37 | 显示全部楼层 |阅读模式
刚烧进去程序有时候正常,再重新上电就只有实际值一半,每次偏差就是实际值二分之一。换到12位模式一切正常,其他设置一模一样,大神看看哪里出问题了
  1. adc16_config_t adc16ConfigStruct;
  2.           adc16_channel_config_t adc16ChannelConfigStruct;
  3.       adc16ConfigStruct.referenceVoltageSource = kADC16_ReferenceVoltageSourceVref;
  4.       adc16ConfigStruct.clockSource = kADC16_ClockSourceAsynchronousClock;
  5.       adc16ConfigStruct.enableAsynchronousClock = true;
  6.       adc16ConfigStruct.clockDivider = kADC16_ClockDivider8;  
  7.       adc16ConfigStruct.resolution = kADC16_ResolutionSE12Bit;
  8.       adc16ConfigStruct.longSampleMode = kADC16_LongSampleDisabled;
  9.       adc16ConfigStruct.enableHighSpeed = false;
  10.       adc16ConfigStruct.enableLowPower = false;
  11.       adc16ConfigStruct.enableContinuousConversion = false;
  12.       adc16ChannelConfigStruct.channelNumber = ADC_USER_CHANNEL;
  13.       adc16ChannelConfigStruct.enableInterruptOnConversionCompleted = false;
  14.       ADC16_Init (ADC_BASEADDR,&adc16ConfigStruct);
  15.           ADC16_SetChannelConfig(ADC_BASEADDR,ADC_CHANNEL_GROUP,&adc16ChannelConfigStruct);
  16.           ADC16_EnableHardwareTrigger(ADC_BASEADDR, false);
复制代码


最佳答案

楼主你好! 16位单端的有效位典型值是13.9,不会差那么多的。 你对照KL16的数据手册,看看ADC的时钟是否超出了12Mhz,16位的fADCK最大时钟是12Mhz。
回复

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24876
最后登录
2025-7-18
发表于 2017-12-7 09:50:26 | 显示全部楼层
楼主你好!
16位单端的有效位典型值是13.9,不会差那么多的。
你对照KL16的数据手册,看看ADC的时钟是否超出了12Mhz,16位的fADCK最大时钟是12Mhz。

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-20 12:19 , Processed in 0.090778 second(s), 22 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表