打印
[综合信息]

EVB板ADC采样试验

[复制链接]
1552|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Cjy_JDxy|  楼主 | 2019-10-30 22:29 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
今晚捣鼓了一下EVB板ADC单次一直采样模式,用板子上的电位器调节。
代码:
#include "adc.h"
#include "gpio.h"
#include "bgr.h"
/******************************************************************************
* Local pre-processor symbols/macros ('#define')                           
******************************************************************************/


/******************************************************************************
* Global variable definitions (declared in header file with 'extern')
******************************************************************************/
volatile uint32_t u32AdcRestult;

/******************************************************************************
* Local type definitions ('typedef')                                         
******************************************************************************/

/******************************************************************************
* Local function prototypes ('static')
******************************************************************************/

/******************************************************************************
* Local variable definitions ('static')                                      *
******************************************************************************/

/*****************************************************************************
* Function implementation - global ('extern') and local ('static')
******************************************************************************/
void App_AdcPortInit(void);
void App_AdcInit(void);
void App_AdcSglCfg(void);

/**
******************************************************************************
** \brief  Main function of project
**
** \return uint32_t return value, if needed
**
** This sample
**
******************************************************************************/
int32_t main(void)
{      

    ///< ADC采样端口初始化
    App_AdcPortInit();

    ///< ADC模块 初始化
    App_AdcInit();

    ///< ADC 单次采样模式 配置
    App_AdcSglCfg();

    while(1)
    {        
        if(TRUE == Adc_GetIrqStatus(AdcMskIrqSgl))
        {
            ///< 获取采样值
            u32AdcRestult = Adc_GetSglResult();
            Adc_ClrIrqStatus(AdcMskIrqSgl);
        }
    }
}

///< ADC 采样端口初始化
void App_AdcPortInit(void)
{   
    ///< 开启ADC/BGR GPIO外设时钟
    Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);

    Gpio_SetAnalogMode(GpioPortC, GpioPin5);        //PA00 (AIN0)
}

///< ADC模块 初始化
void App_AdcInit(void)
{
    stc_adc_cfg_t              stcAdcCfg;

    DDL_ZERO_STRUCT(stcAdcCfg);

    ///< 开启ADC/BGR外设时钟
    Sysctrl_SetPeripheralGate(SysctrlPeripheralAdcBgr, TRUE);

    Bgr_BgrEnable();                                        ///< 开启BGR

    ///< ADC 初始化配置
    stcAdcCfg.enAdcMode         = AdcSglMode;               ///<采样模式-单次
    stcAdcCfg.enAdcClkDiv       = AdcMskClkDiv1;            ///<采样分频-1
    stcAdcCfg.enAdcSampCycleSel = AdcMskSampCycle12Clk;     ///<采样周期数-12
    stcAdcCfg.enAdcRefVolSel    = AdcMskRefVolSelInBgr2p5;  ///<参考电压选择-内部2.5V
    stcAdcCfg.enAdcOpBuf        = AdcMskBufDisable;         ///<OP BUF配置-关
    stcAdcCfg.enInRef           = AdcMskInRefEnable;        ///<内部参考电压使能-开
    stcAdcCfg.enAdcAlign        = AdcAlignRight;            ///<转换结果对齐方式-右
    Adc_Init(&stcAdcCfg);
}

///< ADC 单次采样模式 配置
void App_AdcSglCfg(void)
{
    ///< 配置单次采样通道
    Adc_CfgSglChannel(AdcExInputCH15);

    ///< 启动单次一直采样
    Adc_SGL_Always_Start();

}

/******************************************************************************
* EOF (not truncated)
******************************************************************************/

效果图:





我有一个问题。为什么采样值那么小呢?谢谢!


使用特权

评论回复
沙发
键盘手没手| | 2019-10-31 19:18 | 只看该作者
我这分辨率不行啊,你发的图,我啥也看不见。

使用特权

评论回复
板凳
Cjy_JDxy|  楼主 | 2019-10-31 20:14 | 只看该作者
键盘手没手 发表于 2019-10-31 19:18
我这分辨率不行啊,你发的图,我啥也看不见。

我告诉你吧,采样值从0到6,最小是0,最大是6.

使用特权

评论回复
地板
凡人8000| | 2019-11-1 10:47 | 只看该作者
你没有把板子上的J3短路(如下图),另外程序中还要改一下ADC转换通道为CH15。调节电位器,随着变大变小,ADC的值也在跟着变化,采的值也比较准确。

使用特权

评论回复
5
Cjy_JDxy|  楼主 | 2019-11-1 13:09 | 只看该作者
凡人8000 发表于 2019-11-1 10:47
你没有把板子上的J3短路(如下图),另外程序中还要改一下ADC转换通道为CH15。调节电位器,随着变大变小,ADC ...

谢谢!CH15已经改了。

使用特权

评论回复
6
Cjy_JDxy|  楼主 | 2019-11-1 19:48 | 只看该作者
凡人8000 发表于 2019-11-1 10:47
你没有把板子上的J3短路(如下图),另外程序中还要改一下ADC转换通道为CH15。调节电位器,随着变大变小,ADC ...

谢谢!短接J3不管用,采样值都是0XFFF.



使用特权

评论回复
7
D调胖子| | 2019-11-7 14:31 | 只看该作者
看一下原理图吧,J3是需要短接的!

使用特权

评论回复
8
Cjy_JDxy|  楼主 | 2019-11-7 20:37 | 只看该作者
D调胖子 发表于 2019-11-7 14:31
看一下原理图吧,J3是需要短接的!

我短接了,不管用。

使用特权

评论回复
9
eelux| | 2019-11-9 14:49 | 只看该作者
Cjy_JDxy 发表于 2019-11-7 20:37
我短接了,不管用。

你的EVB的USB接口需要供电

使用特权

评论回复
10
Cjy_JDxy|  楼主 | 2019-11-10 20:04 | 只看该作者
eelux 发表于 2019-11-9 14:49
你的EVB的USB接口需要供电

奥,我还没有那种USB线,什么时候买一根。

使用特权

评论回复
11
Cjy_JDxy|  楼主 | 2019-11-10 20:42 | 只看该作者
各位大神看看,是这种线吗?谢谢!

使用特权

评论回复
12
eelux| | 2019-11-11 09:19 | 只看该作者
Cjy_JDxy 发表于 2019-11-10 20:04
奥,我还没有那种USB线,什么时候买一根。

双11啊

使用特权

评论回复
13
eelux| | 2019-11-11 09:21 | 只看该作者
Cjy_JDxy 发表于 2019-11-7 20:37
我短接了,不管用。

另外想再确认一下,硬件是是否同时短接了:
1、J3;
2、J4的(VRP和ADC-IN)

使用特权

评论回复
14
martinhu| | 2019-11-11 09:28 | 只看该作者
正确接了J3和J4之后,滑动变阻器有没有试着转动,看采样值变化,或者测一测ADC的IO引脚上的电压是否有变化?

使用特权

评论回复
15
Cjy_JDxy|  楼主 | 2019-11-11 10:50 | 只看该作者
eelux 发表于 2019-11-11 09:21
另外想再确认一下,硬件是是否同时短接了:
1、J3;
2、J4的(VRP和ADC-IN) ...

同时短接了

使用特权

评论回复
16
Cjy_JDxy|  楼主 | 2019-11-11 10:53 | 只看该作者
martinhu 发表于 2019-11-11 09:28
正确接了J3和J4之后,滑动变阻器有没有试着转动,看采样值变化,或者测一测ADC的IO引脚上的电压是否有变化 ...

转动变阻器了。有人说需要接USB线。我还没买呢?我贴了个图,不知道是不是那一种,你帮我看看。谢谢

使用特权

评论回复
17
Cjy_JDxy|  楼主 | 2019-11-11 10:55 | 只看该作者

你看看我贴的USB线图,是不是那种USB线。谢谢!我今天买。

使用特权

评论回复
18
zljiu| | 2019-11-12 16:18 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
19
D调胖子| | 2019-11-14 16:58 | 只看该作者
C:\Users\wangab\Desktop\ADC 配置.jpg

使用特权

评论回复
20
D调胖子| | 2019-11-14 17:02 | 只看该作者
Cjy_JDxy 发表于 2019-11-11 10:55
你看看我贴的USB线图,是不是那种USB线。谢谢!我今天买。


看看

使用特权

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

本版积分规则

个人签名:绿水本无忧因风皱面,青山原不老为雪白头。

553

主题

3530

帖子

19

粉丝