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

查看: 7308|回复: 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管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版