OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8754|回复: 7

使用中,需要用到STM32F103中的ADC多通道(多于8个),可是系统貌似只默认开启0-3通道,请教各位大神如何开启更多通道,谢谢!!

[复制链接]

1

主题

12

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2016-7-25
在线时间
6 小时
发表于 2016-7-25 18:47:15 | 显示全部楼层 |阅读模式
1金钱
//初始化ADC
//这里我们仅以规则通道为例
//我们默认将开启通道0~3
---------上面的是编程代码中的一段话,默认只开启通道0-3,因为是新手,所以没找到开启更多通道的设置,大神们帮帮忙吧,谢谢!!!!!!!                                                                                                                                          

最佳答案

查看完整内容[请看2#楼]

ADC_InitStructure.ADC_NbrOfChannel = 这里写通道个数; //要转换的通道数目1 ADC_Init(ADC1, &ADC_InitStructure); /*配置ADC时钟,为PCLK2的6分频,即12MHz*/ RCC_ADCCLKConfig(RCC_PCLK2_Div6); /*配置ADC1的通道11为55. 5个采样周期,序列为1 */ 这里排adc的序列 ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_1Cycles5 ); //配置采样时间为239.5周期 ADC_RegularChann ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

22

主题

751

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1606
金钱
1606
注册时间
2015-6-10
在线时间
223 小时
发表于 2016-7-25 18:47:16 | 显示全部楼层
        ADC_InitStructure.ADC_NbrOfChannel                         = 这里写通道个数;                 //要转换的通道数目1
        ADC_Init(ADC1, &ADC_InitStructure);
       
       
       
        /*配置ADC时钟,为PCLK2的6分频,即12MHz*/
        RCC_ADCCLKConfig(RCC_PCLK2_Div6);
        /*配置ADC1的通道11为55.        5个采样周期,序列为1 */


这里排adc的序列
        ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_1Cycles5 );        //配置采样时间为239.5周期
        ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 2, ADC_SampleTime_1Cycles5 );        //配置采样时间为239.5周期
        ADC_RegularChannelConfig(ADC1, ADC_Channel_2, 3, ADC_SampleTime_1Cycles5 );        //配置采样时间为239.5周期
        ADC_RegularChannelConfig(ADC1, ADC_Channel_3, 4, ADC_SampleTime_1Cycles5 );        //配置采样时间为239.5周期       
        ADC_RegularChannelConfig(ADC1, ADC_Channel_4, 5, ADC_SampleTime_1Cycles5 );        //配置采样时间为239.5周期
        ADC_RegularChannelConfig(ADC1, ADC_Channel_5, 6, ADC_SampleTime_1Cycles5 );        //配置采样时间为239.5周期       
        ADC_RegularChannelConfig(ADC1, ADC_Channel_6, 7, ADC_SampleTime_1Cycles5 );        //配置采样时间为239.5周期
        ADC_RegularChannelConfig(ADC1, ADC_Channel_7, 8, ADC_SampleTime_1Cycles5 );        //配置采样时间为239.5周期       
//         ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 9, ADC_SampleTime_239Cycles5 );        //配置采样时间为239.5周期       
//         ADC_RegularChannelConfig(ADC1, ADC_Channel_11, 10, ADC_SampleTime_1Cycles5 );        //配置采样时间为239.5周期       
//         ADC_RegularChannelConfig(ADC1, ADC_Channel_12, 11, ADC_SampleTime_1Cycles5 );        //配置采样时间为239.5周期       
//         ADC_RegularChannelConfig(ADC1, ADC_Channel_13, 12, ADC_SampleTime_239Cycles5 );        //配置采样时间为239.5周期       


其他注释不一定对
回复

使用道具 举报

1

主题

12

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2016-7-25
在线时间
6 小时
 楼主| 发表于 2016-7-26 10:15:51 | 显示全部楼层
本帖最后由 zhuliming 于 2016-7-26 10:31 编辑
止天 发表于 2016-7-26 08:12
ADC_InitStructure.ADC_NbrOfChannel                         = 这里写通道个数;                 //要转换的通道数目1
        ADC_Init(ADC1, &ADC ...

//获得ADC值
//ch:通道值 0~3
u16 Get_Adc(u8 ch)   
{
          //设置指定ADC的规则组通道,一个序列,采样时间
        ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5 );        //ADC1,ADC通道,采样时间为239.5周期                                      
  
        ADC_SoftwareStartConvCmd(ADC1, ENABLE);                //使能指定的ADC1的软件转换启动功能        
         
        while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待转换结束

        return ADC_GetConversionValue(ADC1);        //返回最近一次ADC1规则组的转换结果
}

想请教一下,上面这段ADC实验代码中的ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5 );为什么只有ch后的数字为1是PA1有效,而其他的数字都是无效的,即使我已经初始化了其他的通道?这样吧,能麻烦您给我一份单通道的,且通道为通道5,也就是对应的引脚为PA5的完整的程序代码吗,我想对照一下,看看是哪里出了差错,谢谢啦!!
回复

使用道具 举报

1

主题

12

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2016-7-25
在线时间
6 小时
 楼主| 发表于 2016-7-26 10:32:25 | 显示全部楼层
zhuliming 发表于 2016-7-26 10:15
//获得ADC值
//ch:通道值 0~3
u16 Get_Adc(u8 ch)   

已经找到问题了,就不用麻烦你了,谢谢
回复

使用道具 举报

5

主题

6

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2016-7-22
在线时间
3 小时
发表于 2016-9-1 19:32:52 | 显示全部楼层
你能给我发一份程序作为参考吗
回复

使用道具 举报

3

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2019-7-16
在线时间
10 小时
发表于 2019-7-16 21:11:09 | 显示全部楼层
zhuliming 发表于 2016-7-26 10:32
**** 作者被禁止或删除 内容自动屏蔽 ****

是怎么配置的 求教
回复

使用道具 举报

3

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2019-11-21
在线时间
21 小时
发表于 2019-11-22 15:54:07 | 显示全部楼层
zhuliming 发表于 2016-7-26 10:15
**** 作者被禁止或删除 内容自动屏蔽 ****

因为是通道序列为1,你用的是单通道,所以只有1有意义。
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2020-3-17
在线时间
11 小时
发表于 2021-5-2 21:29:27 | 显示全部楼层
zhuliming 发表于 2016-7-26 10:32
已经找到问题了,就不用麻烦你了,谢谢

我也受困于这个问题,倒低是什么原因呢?
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-27 16:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表