电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
ADC实验无法进入中断 求解
已解决
73482
个问题
已帮助
5993
位优秀工程师
ADC实验无法进入中断 求解
雪狼
2021-02-04
浏览量:957
ADC.C
static void ADC_NVIC_Config(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
// 优先级分组
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
// 配置中断优先级
NVIC_InitStructure.NVIC_IRQChannel = ADC_Channelx;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
static void ADC_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AIN;
GPIO_InitStruct.GPIO_Pin = ADC_GPIO_PIN ;
GPIO_Init(ADC_GPIO_PORT &GPIO_InitStruct);
}
static void ADC_Mode_Config(void)
{
ADC_InitTypeDef ADC_InitStruct ;
ADC_ClkCmd(ADC_GPIO_CLKENABLE);
ADC_InitStruct.ADC_ContinuousConvMode=ENABLE;
ADC_InitStruct.ADC_DataAlign=ADC_DataAlign_Right ;
ADC_InitStruct.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None ;
ADC_InitStruct.ADC_Mode=ADC_Mode_Independent;
ADC_InitStruct.ADC_NbrOfChannel=1;
ADC_InitStruct.ADC_ScanConvMode=DISABLE;
ADC_Init (ADC_x&ADC_InitStruct);
ADC_PCLK2_DivCmd(RCC_PCLK2_Div8);
ADC_RegularChannelConfig (ADC_x ADC_Channelx 1 ADC_SampleTime_55Cycles5);
ADC_ITConfig(ADC_x ADC_IT_EOC ENABLE);
ADC_Cmd(ADC_x ENABLE);
ADC_ResetCalibration ( ADC_x ) ;
while(ADC_GetResetCalibrationStatus(ADC_x));
ADC_StartCalibration ( ADC_x ) ;
while(ADC_GetSoftwareStartConvStatus ( ADC_x ) == 1 );
ADC_SoftwareStartConvCmd(ADC_xENABLE);
ADC_NVIC_Config();
}
void ADC_Config(void)
{
ADC_GPIO_Config();
ADC_Mode_Config();
ADC_NVIC_Config();
}
adc。h
#ifndef __ADC_H
#define __ADC_H
#include "stm32f10x.h"
// ADC 编号选择
// 可以是 ADC1/2,如果使用ADC3,中断相关的要改成ADC3的
#define ADC_APBxClock_FUN RCC_APB2PeriphClockCmd
#define ADCx ADC2
#define ADC_CLK RCC_APB2Periph_ADC2
// ADC GPIO宏定义
// 注意:用作ADC采集的IO必须没有复用,否则采集电压会有影响
#define ADC_GPIO_APBxClock_FUN RCC_APB2PeriphClockCmd
#define ADC_GPIO_CLK RCC_APB2Periph_GPIOC
#define ADC_PORT GPIOC
#define ADC_PIN GPIO_Pin_1
// ADC 通道宏定义
#define ADC_CHANNEL ADC_Channel_11
// ADC 中断相关宏定义
#define ADC_IRQ ADC1_2_IRQn
#define ADC_IRQHandler ADC1_2_IRQHandler
//#define ADC_IRQ ADC3_IRQn
//#define ADC_IRQHandler ADC3_IRQHandler
void ADCx_Init(void);
#endif /@@* __ADC_H */
显示全部
单片机
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
一笔之名也
这只是ADC的配置程序,你要在主函数中打开ADC转换,才会有转换结果,才会进中断的
发布于
2021-02-25
举报
评论 0
0
0
其他答案
数量:
0
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
ADC实验无法进入中断 求解
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: