CC2640R2F ADC设置(基于SDK 1.40版本 替代ADC_open)

牢骚

TI能不能把文档跟例程什么的写的清楚点?最起码给的例程能够跑的通吧?就这么一个简简单单的ADC折腾我3个多小时,我也是很服气的(好吧,是我太浮躁了,没沉下心认真的研读TI写的虽然“规范”但又臭又长的代码。层层封装考虑多线程,这很好,每个开发者都想跟linux那样直接用户层一个open,一个read就可以完成任务那种,但关键是封装完不能用,开发人员还看不到底层代码,这就很让人呵呵)

正文

废话不说了,简单粗暴的不管多线,代码如下:

#include <driverlib/aux_adc.h>
#include <driverlib/aux_wuc.h>
……
uint32_t ADC_Read(void)
{
    AUXWUCClockEnable(AUX_WUC_MODCLKEN0_ANAIF_M|AUX_WUC_MODCLKEN0_AUX_ADI4_M);
    AUXADCSelectInput(ADC_COMPB_IN_AUXIO0);
    AUXADCEnableSync(AUXADC_REF_FIXED,AUXADC_SAMPLE_TIME_2P7_US, AUXADC_TRIGGER_MANUAL);
    AUXADCGenManualTrigger();
    uint32_t ADCVal = AUXADCReadFifo();
    AUXADCDisable();
    return ADCVal;
};

代码参考了多人的帖子、国内TI官方论坛、国外TI官方论坛,实在是太多了,一时说不过来了,原作者如果看到了请联系我我会把原帖子链接放上去

我记得CSDN上有一篇帖子跟我这个很类似,就是AUXWUCClockEnable这个函数这里用的是TI已经废除(??那都找不到)AUX_WUC_MODCLKEN0_SOC_M这个宏定义,导致一直无法编译通过。

对了,CC2640的ADC对应关系请参考:

https://e2echina.ti.com/question_answer/wireless_connectivity/bluetooth/f/103/t/147467

TI官方论坛这个帖子的最后一楼,即 ADCBufCC26XX.h 里的内容。里面有通道对应引脚关系。

以上。

猜你喜欢

转载自blog.csdn.net/sunhaobo1996/article/details/79344949