你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 7325|回复: 5

STM32 ADC注入组、规则组 疑惑 求解

[复制链接]

1

主题

9

回帖

0

蝴蝶豆

初级会员

最后登录
2020-6-5
发表于 2012-8-3 22:05:56 | 显示全部楼层 |阅读模式
使用遇到一个问题。规则组的转换正常。但是注入的的转换不行。软件启动触发后,进不了中断(中断已使能),后来把中断屏蔽,直接读取标志位也获取不到。程序功能配置如下:
//配置ADC
void ADC_CFG(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        ADC_InitTypeDef ADC_InitStructure;
       
        RCC_ADCCLKConfig(RCC_PCLK2_Div4);
        //打开ADC1、GPIOC时钟
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOC,ENABLE);
       
        //配置PC0、PC1、PC2、PC3、PC4为模拟输  channel 10 11 12 13 14
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4;
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;//配置为模拟输入
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Init(GPIOC,&GPIO_InitStructure);
               
        //ADC1与ADC2相互独立
        ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;
        //规定模数转换工作在扫描模式还是单次模式
        ADC_InitStructure.ADC_ScanConvMode=ENABLE;
        //规定了模数转换工作在连续还是单次模式
        ADC_InitStructure.ADC_ContinuousConvMode=ENABLE;
        //使用外部触发来启动规则通道的模数转换
        ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;
        //数据对齐方式
        ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;//数据对齐方式:右对齐
        // 设置转换序列长度,规则组转换长度
        ADC_InitStructure.ADC_NbrOfChannel=4;
        ADC_Init(ADC1,&ADC_InitStructure);
       
        // 设置制定 ADC 的规则组通道。配置转换顺序和转换时间  **在调用完ADC_Init()必须调用以下函数
        ADC_RegularChannelConfig(ADC1,ADC_Channel_10,2,ADC_SampleTime_55Cycles5);
        ADC_RegularChannelConfig(ADC1,ADC_Channel_11,3,ADC_SampleTime_55Cycles5);
        ADC_RegularChannelConfig(ADC1,ADC_Channel_12,4,ADC_SampleTime_55Cycles5);
        ADC_RegularChannelConfig(ADC1,ADC_Channel_16,4,ADC_SampleTime_55Cycles5);
       
        ADC_InjectedSequencerLengthConfig(ADC1,1);
        ADC_InjectedChannelConfig(ADC1,ADC_Channel_14,1,ADC_SampleTime_41Cycles5);
        ADC_ExternalTrigInjectedConvConfig(ADC1,ADC_ExternalTrigConv_None);
       
        // 使能内部温度传感器
        ADC_TempSensorVrefintCmd(ENABLE);
       
        ADC_ITConfig(ADC1,ADC_IT_JEOC,ENABLE);
       
        ADC_DMACmd(ADC1,ENABLE);
               
        //使能ADC1
        ADC_Cmd(ADC1,ENABLE);
       
        //重置指定的ADC校准寄存器
        ADC_ResetCalibration(ADC1);
        //检查指定ADC校准寄存器的设置状态
        while(ADC_GetResetCalibrationStatus(ADC1));
       
        //开始指定ADC的校准程序
        ADC_StartCalibration(ADC1);
        //获取指定ADC的校准状态
        while(ADC_GetSoftwareStartConvStatus(ADC1));
       
        //使能指定的ADC软件触发转换启动功能
        ADC_SoftwareStartConvCmd(ADC1,ENABLE);       
}
主函数的部分代码:
                 if(flag)
                {
                        flag=0;
                       
                        ADC_SoftwareStartInjectedConvCmd(ADC1,ENABLE);
                }
                if(ADC_GetFlagStatus(ADC1,ADC_FLAG_JEOC))
                {
                        ADC_ClearFlag(ADC1,ADC_FLAG_JEOC);
                       
                        xxx=ADC_GetInjectedConversionValue(ADC1,ADC_InjectedChannel_1);
                        flag=1;
                }
 
仿真的时候xxx一直为0
<
回复

使用道具 举报

0

主题

1

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2013-1-31 10:38:43 | 显示全部楼层

回复:STM32 ADC注入组、规则组 疑惑 求解

哎呀!你这个问题怎么解决的啊?我也遇到了啊!加我QQ啊~咱们讨论下呢!!!769740648~急啊
回复 支持 反对

使用道具 举报

2

主题

15

回帖

0

蝴蝶豆

中级会员

最后登录
2020-11-2
发表于 2013-5-25 14:49:15 | 显示全部楼层

RE:STM32 ADC注入组、规则组 疑惑 求解

确实是有这个问题
回复 支持 反对

使用道具 举报

0

主题

14

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2013-5-28 16:23:25 | 显示全部楼层

RE:STM32 ADC注入组、规则组 疑惑 求解

没有选择触发源,怎么可能进中断,选择一个触发源!
回复 支持 反对

使用道具 举报

0

主题

2

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2014-6-17 11:05:10 | 显示全部楼层

回复:STM32 ADC注入组、规则组 疑惑 求解

ADC_ExternalTrigInjectedConvConfig(ADC1,ADC_ExternalTrigConv_None);
这条语句中的ADC_ExternalTrigConv_None不对,这是规则组定义使用软件触发,注入组应用ADC_ExternalTrigInjecConv_None
回复 支持 反对

使用道具 举报

3

主题

79

回帖

0

蝴蝶豆

中级会员

最后登录
2016-3-24
发表于 2015-10-23 11:25:39 | 显示全部楼层
ADC_RegularChannelConfig  改成  ADC_InjectedChannelConfig
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版