OpenEdv-开源电子网

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

stm32f103vct6的PC.0和PC.1接的是哪个ad啊

[复制链接]

41

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
258
金钱
258
注册时间
2014-3-8
在线时间
18 小时
发表于 2014-9-16 22:06:30 | 显示全部楼层 |阅读模式
5金钱
stm32f103vct6的PC.0和PC.1接的是哪个AD啊,结构体怎么设置啊??

最佳答案

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

PC0是ADC1/2/3的通道10 PC1是ADC1/2/3的通道11 原理图就有写。 ADC1/2/3是指可以是ADC1或者ADC2或者ADC3的任何一个都行。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-9-16 22:06:31 | 显示全部楼层
PC0是ADC1/2/3的通道10
PC1是ADC1/2/3的通道11
原理图就有写。
ADC1/2/3是指可以是ADC1或者ADC2或者ADC3的任何一个都行。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

13

主题

123

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2013-8-3
在线时间
0 小时
发表于 2014-9-16 23:18:45 | 显示全部楼层
看数据手册,上面有说的
回复

使用道具 举报

41

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
258
金钱
258
注册时间
2014-3-8
在线时间
18 小时
 楼主| 发表于 2014-9-17 16:42:13 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
以前在PA.0和PA.1上的AD,转移到PC.0和PC.1上就出问题了,是不是除了修改通道,还得修改其他的选项啊??
void ad_init(void)
{
GPIO_InitTypeDef    GPIO_InitStruct;
ADC_InitTypeDef    ADC_InitStruct;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_ADC1, ENABLE);

RCC_ADCCLKConfig(RCC_PCLK2_Div6); //设置预分频值为6,72M/6=12M,ADC的时钟频率最大为14M

GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1;
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AIN;
GPIO_Init(GPIOC, &GPIO_InitStruct);

ADC_DeInit(ADC1);

ADC_InitStruct.ADC_Mode=ADC_Mode_Independent;
// ADC_InitStruct.ADC_ScanConvMode=ENABLE;
ADC_InitStruct.ADC_ScanConvMode=DISABLE;
// ADC_InitStruct.ADC_ContinuousConvMode=ENABLE;
ADC_InitStruct.ADC_ContinuousConvMode=DISABLE;
ADC_InitStruct.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;
// ADC_InitStruct.ADC_ExternalTrigConv=ADC_ExternalTrigConv_T1_CC3;
ADC_InitStruct.ADC_DataAlign=ADC_DataAlign_Right;
ADC_InitStruct.ADC_NbrOfChannel=2;    //顺序进行规则转换的ADC通道的数目
ADC_Init(ADC1, &ADC_InitStruct);


ADC_Cmd(ADC1, ENABLE);  //置位ADC1.CR2.ADON

ADC_ResetCalibration(ADC1); //开启复位校准
while(ADC_GetResetCalibrationStatus(ADC1));   //等待复位校准结束

ADC_StartCalibration(ADC1);  //开启AD校准
while(ADC_GetCalibrationStatus(ADC1));    //等待AD校结束准
}


float get_adcv_value(void)
{
ADC_RegularChannelConfig(ADC1, ADC_Channel_11, 1, ADC_SampleTime_239Cycles5);
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC)==RESET);    //等待转换结束

return   ADC_GetConversionValue(ADC1);
}

float get_adcv_average(void)
{
u8 i,j;
adcv_sum=0;
for(i=0;i<15;i++)
{
  adcv_val=get_adcv_value();
adcv_val*=(3.3/4300);
delay(3);        //延时24us
}

for(j=5;j<15;j++)
{
adcv_sum+=adcv_val[j];
}
adcv_average=adcv_sum/10;
adcv_average*=6;

return   adcv_average;
}


float get_adci_value(void)
{
ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 1, ADC_SampleTime_239Cycles5);

ADC_SoftwareStartConvCmd(ADC1, ENABLE);
while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC)==RESET);    //等待转换结束

return   ADC_GetConversionValue(ADC1);
}

float get_adci_average(void)
{
u8 i,j;
adci_sum=0;
for(i=0;i<30;i++)
{
  adci_val=get_adci_value();
adci_val*=(3.3/4510);
delay(1);        //延时24us
}

for(j=0;j<30;j++)
{
adci_sum+=adci_val[j];
}
adci_average=adci_sum/30;
// adci_average-=2.5366;
// adci_average/=-0.6428;
adci_average-=2.5466;
adci_average/=-0.6428;

return   adci_average;
}
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-9-17 23:18:53 | 显示全部楼层
回复【4楼】王有才:
---------------------------------
得慢慢查。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-1 05:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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