开发板:野火指南者(STM32F103VE)
STM32库版本:STM32F10x_StdPeriph_Lib_V3.5.0
IDE:KEIL5(代码编写很不方便,只在编译的时候用到)
代码编写工具:Source Insight 4.0(跟读代码、编写代码的最佳工具)
硬件原理图:
效果:
1. 新建user_adc.c、user_adc.h、user_nvic.c、user_nvic.h、user_usart.c、user_usart.h、main.c 7个文件,并从STM32官方库的例子中将stm32f10x_it.c、stm32f10x_it.h、stm32f10x_conf.h拷贝到自己的工程目录下。
2. 在user_adc.h中添加如下代码
1 #ifndef __USER_ADC_H 2 #define __USRE_ADC_H 3 #include "stm32f10x.h" 4 5 6 extern float adc_var; 7 8 void user_adc_config(void); //ADC配置函数 9 void user_adc_gpio_config(void); //配置实际信号输入通道的IO 10 void ADC1_2_IRQHandler(void); //中断函数,函数名要与.s启动文件中的中断向量表一致 11 void user_delay_time(uint32_t time); //延时函数 12 13 14 #endif
3. 在user_adc.c中添加如下代码
1 #include "user_adc.h" 2 3 float adc_var; 4 5 //ADC配置函数 6 void user_adc_config(void) 7 { 8 9 ADC_InitTypeDef adc_config; 10 11 RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); 12 13 adc_config.ADC_ContinuousConvMode = ENABLE; 14 adc_config.ADC_DataAlign = ADC_DataAlign_Right; 15 adc_config.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; 16 adc_config.ADC_Mode = ADC_Mode_Independent; 17 adc_config.ADC_NbrOfChannel = 1; 18 adc_config.ADC_ScanConvMode = DISABLE;