LM3S811的ADC模块的转换分辨率为10-位,并支持4个输入通道,以及一个内部温度传感器。硬件可对多达64个采样值进行平均计算,以便提高精度。
内部温度传感器提供了模拟温度读取操作和参考电压。输出终端SENSO的电压通过以下等式计算得到:
SENSO=2.7-(T+55)/75
ADC应用注意事项是ADC参考电压是内部的3.0V,而不是通常的3.3V。ADC工作时钟必须在16MHz左右,否则会带来较大的误差甚至是错误的转换结果。通常实现的方法是启用PLL单元,不论由PLL分频获得的主时钟频率是多少,提供给ADC模块的时钟总能够“自动地”保证在16MHz左右。
下面我们通过ADC硬件过采样获取内部温度传感器的数值。只需要加上这条语句:ADCHardwareOversampleConfigure(ADC_BASE, 64);
这样ADC每次采集64个数据进行平均,得到的温度比较稳定。刚运行时温度是30度,慢慢上升到37度,貌似内部温度非常高哦。