void GenericApp_Init( uint8 task_id )
{
APCFG |= 1<<0 ; //p0_0口设置为adc功能
HalAdcInit();
HalAdcSetReference(HAL_ADC_REF_125V);
Init_GPIO();
我代码中关于ad通道0的处理是这样的,但是为什么这个ad的口好像拉不低的样子,只要是往ad输入一个低于2.5v的采样值,他就会莫名其妙拉到2.8v,是什么原因啊?是我哪边设置出了问题吗,具体该如何使用?
YiKai Chen:
你有用 HalAdcRead(HAL_ADC_CHN_AIN0,HAL_ADC_RESOLUTION_10)去讀adc通道0?
user5805542:
回复 YiKai Chen:
for(i=0;i<100;i++){sum += HalAdcRead(HAL_ADC_CHANNEL_0,HAL_ADC_RESOLUTION_12);}voltage = sum / 100 ;
嗯,只不过我用的是12位的
Alvin Chen:
回复 user5805542:
你设置一下IO为输入.
user5805542:
回复 Alvin Chen:
设置了,但是发现一个很尴尬的,我1点几伏的电压过去,值却很大,6,7000
Alvin Chen:
回复 user5805542:
举个例子: HAL_ADC_REF_125V 对吧 你硬件有没有问题啊,你测一下你p0_0给的进去的电压是多少
我怀疑你板子是不是p0_0有可能被设置为led了
YiKai Chen:
回复 user5805542:
是不是程序其他地方把adc通道0設置成其他IO使用了
user5805542:
回复 Alvin Chen:
按照道理来讲,1.15v过去,ad值应该是2047或者4095才对吧,这不是12位的吗?
Alvin Chen:
回复 user5805542:
你到底是几位的,12bit最大到2047,你先去看看你的P0_0 有没有其他复用
user5805542:
回复 Alvin Chen:
能不能把一个标准写法过来,我看看是不是我这边哪边出了问题
YiKai Chen:
回复 user5805542:
參考一下 sunmaysky.blogspot.com/…/cc2530-adc-howto-in-ti-z-stack.html