1073|5

6980

帖子

11

TA的资源

版主

楼主
 

【国民技术车规MCU N32A455开发板】3、简单测试ADC功能 [复制链接]

【国民技术车规MCU N32A455开发板】1、开发板测试 

【国民技术车规MCU N32A455开发板】2、驱动LCD屏 

我的目的是测电流,所以先得把ADC摸出来。所以今天就分享ADC的基本数据采集。

【ADC输入源选择】

由于我的最终目标是测试PGA的功能,所以先选择PA6为ADC输入,进行测试。

【驱动步骤】

1、使能GPIOA的时钟、ADC的时钟,配置ADC1的分频。

//打开时钟
	RCC_EnableAHBPeriphClk(RCC_AHB_PERIPH_ADC1, ENABLE);
	RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOA, ENABLE);
	/* RCC_ADCHCLK_DIV16*/
  ADC_ConfigClk(ADC_CTRL3_CKMOD_AHB,RCC_ADCHCLK_DIV16);
  RCC_ConfigAdc1mClk(RCC_ADC1MCLK_SRC_HSE, RCC_ADC1MCLK_DIV8);  //selsect HSE as RCC ADC1M CLK Source	

2、配置PA6为模拟输入:

	//adc1 PA6为输入通道 
	
  /* Configure PC0 PC1 as analog input -------------------------*/
	GPIO_InitStructure.Pin       = GPIO_PIN_6;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
	GPIO_InitPeripheral(GPIOA, &GPIO_InitStructure);

3、配置ADC的参数,同时使能ADC1,具体代码如下:

	  /* ADC configuration ------------------------------------------------------*/
    ADC_InitStructure.WorkMode       = ADC_WORKMODE_INDEPENDENT;
    ADC_InitStructure.MultiChEn      = DISABLE;
    ADC_InitStructure.ContinueConvEn = DISABLE;
    ADC_InitStructure.ExtTrigSelect  = ADC_EXT_TRIGCONV_NONE;
    ADC_InitStructure.DatAlign       = ADC_DAT_ALIGN_R;
    ADC_InitStructure.ChsNumber      = 1;
    ADC_Init(ADC1, &ADC_InitStructure);


    /* Enable ADC */
    ADC_Enable(ADC1, ENABLE);
    /*Check ADC Ready*/
    while(ADC_GetFlagStatusNew(ADC1,ADC_FLAG_RDY) == RESET)
        ;
    /* Start ADC calibration */
    ADC_StartCalibration(ADC1);
    /* Check the end of ADC calibration */
    while (ADC_GetCalibrationStatus(ADC1));

4、实现一个读取ADC指定通道的函数,传入参数为ADC1-4,通道为相应的通道 。

uint16_t ADC_GetData(ADC_Module* ADCx, uint8_t ADC_Channel)
{
    uint16_t dat;
    
    ADC_ConfigRegularChannel(ADCx, ADC_Channel, 1, ADC_SAMP_TIME_239CYCLES5);
    /* Start ADC Software Conversion */
    ADC_EnableSoftwareStartConv(ADCx, ENABLE);
    while(ADC_GetFlagStatus(ADCx, ADC_FLAG_ENDC)==0){
    }
    ADC_ClearFlag(ADCx, ADC_FLAG_ENDC);
    ADC_ClearFlag(ADCx, ADC_FLAG_STR);
    dat=ADC_GetDat(ADCx);
    return dat;
}

在选择对应的通道中,官方的库n32a455_adc.h文件给我们定义好的对应有通道的宏定义,方便我们了解如何配置对应的通道,就不用查数据手册这么麻烦了。

  5、在主函数中,我添加代码,读取这一通道的数据,并展示到LCD屏上:


#include "main.h"

#include "log.h"
#include "lcd_init.h"
#include "lcd.h"
#include "adc.h"
#include "delay.h"

__IO uint16_t ADC1ConvertedValue[5];
int main(void)
{

    log_init();
		init_adc();
	
		LCD_Init();//LCD初始化
		LCD_Fill(0,0,LCD_W,LCD_H,WHITE);
		LCD_ShowChinese(10,0,"国民技术",RED,WHITE,24,0);
		LCD_ShowString(24,30,"N32A455",RED,WHITE,16,0);
		while(1)
		{
				ADC1ConvertedValue[0]=ADC_GetData(ADC1,ADC1_Channel_03_PA6);
				LCD_ShowIntNum(24,50,ADC1ConvertedValue[0],4,RED,WHITE, 16);
				LCD_ShowFloatNum1(24,80,(float)ADC1ConvertedValue[0]*3.3/4095.0,4,RED,WHITE, 16);
				delay_ms(500);
		}

}

【测试】

通过PA6,使用数字电源输入电压值,就可以测量出对应的电压了。效果如下图所示:

 

【总结】

国民技术给了很丰富的例子,通过阅读数据手册与官方的示例,就可快速的入门他们的外设使用。同时ADC的测量值也非常准。

此帖出自汽车电子论坛

最新回复

【国民技术车规MCU N32A455开发板】1、开发板测试  【国民技术车规MCU N32A455开发板】2、驱动LCD屏  这些文章写得真好,我得好好学习!   详情 回复 发表于 2024-4-6 14:22

赞赏

1

查看全部赞赏

点赞(1) 关注

回复
举报

6809

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

国民技术的生态链做的还是可以的

此帖出自汽车电子论坛

点评

大佬早上好呀,感谢这么早来关注我!祝周末愉快!  详情 回复 发表于 2024-3-23 07:36
 
 

回复

6980

帖子

11

TA的资源

版主

板凳
 
Jacktang 发表于 2024-3-23 07:31 国民技术的生态链做的还是可以的

大佬早上好呀,感谢这么早来关注我!祝周末愉快!

此帖出自汽车电子论坛
 
 
 

回复

2640

帖子

6

TA的资源

五彩晶圆(初级)

4
 

给大佬点赞

此帖出自汽车电子论坛
个人签名

希望做一些大家觉得好用的东西!

 
 
 

回复

37

帖子

0

TA的资源

一粒金砂(中级)

5
 

点评

感谢大佬的肯定,国民技术的MCU非常好,我用过几款,都是非常优秀的。教程也非常多,生态也非常的好。  详情 回复 发表于 2024-4-6 14:57
 
 
 

回复

6980

帖子

11

TA的资源

版主

6
 
Mcu_MMU 发表于 2024-4-6 14:22 【国民技术车规MCU N32A455开发板】1、开发板测试  【国民技术车规MCU N32A455开发板】2、驱动LCD ...

感谢大佬的肯定,国民技术的MCU非常好,我用过几款,都是非常优秀的。教程也非常多,生态也非常的好。

此帖出自汽车电子论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表