野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15298|回复: 3

ADC端口配置问题

[复制链接]
发表于 2018-7-10 09:35:50 | 显示全部楼层 |阅读模式
本帖最后由 我是小白一枚 于 2018-7-10 11:10 编辑

无标题.png 刚接触STM32库函数,有段代码不会举一反三了,请教下大神。在ADC端口配置的时候如果只用了PC,设置的时候是:#define    ADC_APBxClock_FUN             RCC_APB2PeriphClockCmd#define    ADC_CLK                       RCC_APB2Periph_ADC1
#define    ADC_GPIO_APBxClock_FUN        RCC_APB2PeriphClockCmd
#define    ADC_GPIO_CLK                  RCC_APB2Periph_GPIOC  
#define    ADC_PORT                      GPIOC
// 转换通道个数
#define    NOFCHANEL                         2
#define    ADC_PIN1                      GPIO_Pin_0
#define    ADC_CHANNEL1                  ADC_Channel_10
#define    ADC_PIN2                      GPIO_Pin_1
#define    ADC_CHANNEL2                  ADC_Channel_11;如果同时用到三个端口PA/PB/PC的话,这个地方要怎么写?


回复

使用道具 举报

发表于 2018-7-10 10:49:04 | 显示全部楼层
1、那 GPIOA  GPIOB  GPIOC 这三个GPIO端口的时钟都要开
2、因为都是ADC1,那ADC1的时钟只需要开一次就行,不过开三次也可以
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-10 11:09:07 | 显示全部楼层
本帖最后由 我是小白一枚 于 2018-7-10 11:13 编辑
fire 发表于 2018-7-10 10:49
1、那 GPIOA  GPIOB  GPIOC 这三个GPIO端口的时钟都要开
2、因为都是ADC1,那ADC1的时钟只需要开一次就行 ...

这个里边只用到了PC,#define    ADC_PORT                      GPIOC;
#define    ADC_PIN1                      GPIO_Pin_0;这两句代码可以识别ADC的1脚是PC0,如果ADC的2脚接的PA1三脚接的PBO,ADC-PORT要怎么才能区分是PA还是PB呢?这事想到的笨办法,用什么定义可以不这么麻烦?


#define    ADC_APBxClock_FUN             RCC_APB2PeriphClockCmd
#define    ADC_CLK                       RCC_APB2Periph_ADC1

#define    ADC_GPIO_APBxClock_FUN        RCC_APB2PeriphClockCmd
#define    ADC_GPIO_CLK                  RCC_APB2Periph_GPIOC

#define    V1_ADC_PORT     GPIOA
#define    V3_ADC_PORT     GPIOB
#define    V9_ADC_PORT     GPIOC

// 转换通道个数
#define    NOFCHANEL                        10

#define    V1_ADC_PIN1                      GPIO_Pin_0
#define    ADC_CHANNEL1                  ADC_Channel_1

#define    V1_ADC_PIN2                      GPIO_Pin_1
#define    ADC_CHANNEL2                  ADC_Channel_2

#define    V1_ADC_PIN3                      GPIO_Pin_5
#define    ADC_CHANNEL3                 ADC_Channel_4

#define    V1_ADC_PIN4                      GPIO_Pin_6
#define    ADC_CHANNEL4                  ADC_Channel_5

#define    V1_ADC_PIN5                      GPIO_Pin_7
#define    ADC_CHANNEL5                  ADC_Channel_6

#define    V1_ADC_PIN6                     GPIO_Pin_8
#define    ADC_CHANNEL6                  ADC_Channel_7

#define    V3_ADC_PIN7                      GPIO_Pin_0
#define    ADC_CHANNEL7                  ADC_Channel_8

#define    V3_ADC_PIN8                      GPIO_Pin_1
#define    ADC_CHANNEL8                  ADC_Channel_9

#define    V9_ADC_PIN9                     GPIO_Pin_4
#define    ADC_CHANNEL9                  ADC_Channel_14

#define    V9_ADC_PIN10                     GPIO_Pin_5
#define    ADC_CHANNEL10                  ADC_Channel_15

回复 支持 反对

使用道具 举报

发表于 2018-7-10 11:12:17 | 显示全部楼层
我是小白一枚 发表于 2018-7-10 11:09
这个里边只用到了PC,#define    ADC_PORT                      GPIOC;
#define    ADC_PIN1          ...

那就只能part1,2,3咯
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-12-6 20:22 , Processed in 0.040091 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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