[资源分享]

AC7801最简单的ADC例程

[复制链接]
860|8
手机看帖
扫描二维码
随时随地手机跟帖
GrootBrain|  楼主 | 2021-1-15 15:00 | 显示全部楼层 |阅读模式
ADC, AC, pi, IO, gp
AC7801的ADC太厉害了,12bit精度,1M采样率,支持DMA,多种采样模式……
1610692461(1).png
然而7801内的例程使用了DMA, 对于刚入门的同学们就不是很好理解,简单的应用也不需要用到DMA。因此,实现了一个一次只采样1个通道,轮询采样结果,非常简单的一个小demo。

/**
* ADC0_init
*
* @param[in]   void
* [url=home.php?mod=space&uid=266161]@return[/url]      void
*
* [url=home.php?mod=space&uid=247401]@brief[/url]  ADC初始化
*
*/
void ADC0_init(void)
{
    ADC_ConfigType adcConfig = {0};
    GPIO_SetFunc(GPIOA, GPIO_PIN7, GPIO_FUN2);  ///<ADC_IN4 Analog function enable, PA7
    GPIO_SetFunc(GPIOA, GPIO_PIN8, GPIO_FUN2);  ///<ADC_IN3 Analog function enable, PA8
    GPIO_SetFunc(GPIOA, GPIO_PIN2, GPIO_FUN2);  ///<ADC_IN8 Analog function enable, PA2

    adcConfig.regularSequenceLength = 1;
    adcConfig.powerMode = ADC_POWER_ON;
    ADC_Init(ADC0, &adcConfig);

}
ADC的初始化,调用了驱动库中的ADC_Init(),adcConfig中多数变量采用默认值0,只是将规则组长度设置为1,并开启ADC电源。配置了采样引脚。采用其他引脚采样,需要自行更改引脚。





/**
* ADC_Convert
*
* @param[in]   adcChl ADC通道,参考ADC_ChannelType
* @return      ad转换结果
*
* @brief  获取AD转换结果
*
*/
uint16_t ADC_Convert(ADC_ChannelType adcChl)
{
    uint16_t adcRst = 0;
   
    ADC_SetRegularGroupChannel(ADC0, adcChl, ADC_SPT_CLK_215, 0);  //采样&转换时间= (7+12)/24000000 + 5/24000000 = 1us

    ADC_SoftwareStartRegularConvert(ADC0);              ///软件触发规则组采样
   
    while (0 == ADC_GetEOCFlag(ADC0)){
    }
   
    adcRst = ADC_GetRegularData(ADC0);
   
    return adcRst;
}
通过ADC_Convert() 函数,传入要转换的AD通道号, AD采样结束后返回AD转换结果。



/**
* main
*
* @param[in]   void
* @return      0
*
* @brief  主函数入口
*
*/
int main(void)
{
    InitDelay();
    InitDebug();
   
    ADC0_init();
   
    printf("ADC convert sample.\r\n");
   
    while (1) {
        mdelay(500);
        
        printf("ADC convert result:%d\r\n", ADC_Convert(ADC_CH_8));
    }
}   
测试代码将7801开发板上电位器电压采集下来并通过串口输出。



测试结果如下:
1610693769(1).png

贡献测试代码给有需要的小伙伴


adc_sample.rar

23.75 KB

使用特权

评论回复

相关帖子

单片小菜| | 2021-1-15 15:15 | 显示全部楼层
感谢楼主的分享,这个不错的。

使用特权

评论回复
onlycook| | 2021-1-15 16:21 | 显示全部楼层
很棒的分享,涨经验了

使用特权

评论回复
内政奇才| | 2021-1-15 16:28 | 显示全部楼层
楼主的分享很棒,很不错,赞

使用特权

评论回复
嵌入小菜菜| | 2021-1-15 17:12 | 显示全部楼层
楼主还是很严谨的,很棒的一次分享。

使用特权

评论回复
里面有晴雨| | 2021-1-15 17:47 | 显示全部楼层
感谢楼主的分享,不错,不错的分享。

使用特权

评论回复
七毛钱| | 2021-1-18 11:14 | 显示全部楼层
很棒的一次分享,赞一个

使用特权

评论回复
linwv| | 2021-3-5 15:47 | 显示全部楼层
本帖最后由 linwv 于 2021-3-5 18:04 编辑

这个简单明了好多好多啊    官方例程光Init就一大堆配置。。菜鸟打开官方例程的瞬间就懵逼了

使用特权

评论回复
便携手到老| | 2021-3-5 16:47 | 显示全部楼层
这个例程不简单吧,楼主是高手。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

87

帖子

2

粉丝