OpenEdv-开源电子网

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

adc程序,但是必须加入 #include "stm32f10x_adc.h"?否则报错,为什么

[复制链接]

17

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
115
金钱
115
注册时间
2015-5-7
在线时间
0 小时
发表于 2015-6-3 11:33:48 | 显示全部楼层 |阅读模式
5金钱
在别的例程中,加入adc程序,但是必须加入 #include "stm32f10x_adc.h"否则报错,为什么
我在FWLIB已经加入stm32f10x_adc.h了,为什么不自动生成,stm32f10x_gpio.h就没有类似操作,直接生成了
#include "adc.h"
 #include "delay.h"
 #include "stm32f10x_adc.h"
//////////////////////////////////////////////////////////////////////////////////  

//ALIENTEK miniSTM32??·?°?

////////////////////////////////////////////////////////////////////////////////// 
  
  

void  Adc_Init(void)
{
ADC_InitTypeDef ADC_InitStructure; 
GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_ADC1 , ENABLE );  //????ADC1?¨???±??
 

RCC_ADCCLKConfig(RCC_PCLK2_Div6);   

//                     
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOA, &GPIO_InitStructure);

ADC_DeInit(ADC1);  //

ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; //
ADC_InitStructure.ADC_ScanConvMode = DISABLE; //
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; //
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; //
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; //
ADC_InitStructure.ADC_NbrOfChannel = 1; //
ADC_Init(ADC1, &ADC_InitStructure); //

  
ADC_Cmd(ADC1, ENABLE); //

ADC_ResetCalibration(ADC1);
 
while(ADC_GetResetCalibrationStatus(ADC1)); 

ADC_StartCalibration(ADC1);
 
while(ADC_GetCalibrationStatus(ADC1)); 
 
// ADC_SoftwareStartConvCmd(ADC1, ENABLE);

}  

u16 Get_Adc(u8 ch)   
{
 
ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5 );           
  
ADC_SoftwareStartConvCmd(ADC1, ENABLE); 
 
while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));

return ADC_GetConversionValue(ADC1);
}

u16 Get_Adc_Average(u8 ch,u8 times)
{
u32 temp_val=0;
u8 t;
for(t=0;t<times;t++)
{
temp_val+=Get_Adc(ch);
delay_ms(5);
}
return temp_val/times;
}  

最佳答案

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

因为你的源文件里用到了 stm32f10x_adc.h 里面定义的内容 用库函数,添加头文件最好在 stm32f10x_conf.h里面
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5788
金钱
5788
注册时间
2013-11-22
在线时间
1213 小时
发表于 2015-6-3 11:33:49 | 显示全部楼层
因为你的源文件里用到了 stm32f10x_adc.h 里面定义的内容
用库函数,添加头文件最好在 stm32f10x_conf.h里面
回复

使用道具 举报

17

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
115
金钱
115
注册时间
2015-5-7
在线时间
0 小时
 楼主| 发表于 2015-6-4 17:09:49 | 显示全部楼层
回复【2楼】lycreturn:
---------------------------------
我是直接在例程修改程序,原来stm32f10x_conf.h应该已经定义stm32f10x_adc.h了,不解,能详细讲解吗
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-28 18:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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