static char count_1=0;//当做奇偶数 uint16_t ADC_ConvertedValue;//存放电源电压 uint16_t ADC_ConvertedValue_1;//存放内部参照电压 static uint16_t num=0; void delay(uint n) { int i,j; for(i=0;i<n;i++) for(j=0;j<8500;j++); } void Adc_Init() { ADC_InitTypeDef adc; GPIO_I...
中断函数一般定义在stm32f10x_it.c文件里,进入中断服务函数后,在函数内直接读取ADC转换结果,并保存在ADC_ConvertedValue变量里,该变量是在main.c文件里定义的。 extern__IOuint16_tADC_ConvertedValue;// 该变量在main.c文件定义,所以需添加extern关键字voidADC_IRQHandler(void){if(ADC_GetITStatus(ADC1, ADC_I...
这里在函数里定义char i和float V;i用来实现计算转化次数的功能,然后V用来实现存储每次数据的功能。而ADC_ConvertedValue则是在main.c里定义的一个外部变量。这里就用中断实现了求平均值来求adc的精确值。 然后这回其实最大的收获是以后在移植程序出现问题的时候,会不在纠结问题出在那里,而是试图去尝试自己写一段代...
中断函数一般定义在stm32f10x_it.c文件里,进入中断服务函数后,在函数内直接读取ADC转换结果,并保存在ADC_ConvertedValue变量里,该变量是在main.c文件里定义的。 extern__IOuint16_tADC_ConvertedValue;// 该变量在main.c文件定义,所以需添加extern关键字voidADC_IRQHandler(void){if(ADC_GetITStatus(ADC1,ADC_IT...
主函数 intmain(void){uint16_ttemp0=0,temp1=0;// 配置串口USART_Config();// ADC 初始化ADCx_Init();printf("\r\n ---这是一个双ADC规则同步采集实验---\r\n");while(1){// 取出ADC1数据寄存器的高16位,这个是ADC2的转换数据temp0=(ADC_ConvertedValue[0]&0XFFFF0000)>>16;// 取出ADC1...
ADC_ConvertedValue = ADC_GetConversionValue(ADC_x); } ADC_ClearITPendingBit(ADC_x, ADC_IT_EOC); // 清中断标志位,防止一直在中断里 } 最后在主函数中进行测试: #include "stm32f10x.h" #include "bsp_led.h" #include "bsp_usart.h"
初始化完成之后,在主函数中: void main(void) { float ADC_ConvertedValue; float ADC_ConvertedValueLocal; Adc_Config(); while(1) { ADC_SoftwareStartConvCmd(ADC1, ENABLE); //启动转换 while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC )); //等待转换完成 ...
DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&ADCConvertedValue;//(u32)DMA1Buf; //DMA内存基地址 DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; //数据传输方向,从外设读取数据到内存 DMA_InitStructure.DMA_BufferSize = 1; //DMA通道的DMA缓存的大小 DMA_InitStructure.DMA_PeripheralInc = DMA_Pe...
初始化完成之后,在主函数中: void main(void) { float ADC_ConvertedValue; float ADC_ConvertedValueLocal; Adc_Config(); while(1) { ADC_SoftwareStartConvCmd(ADC1, ENABLE); //启动转换 while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC )); //等待转换完成 ...
1.需要在ADC配置函数中开启ADC中断 adc_interrupt_enable(ADC0, ADC_INT_EOC); 2.NVIC配置 因为我们是在转换完成后利用中断,在中断函数中读取数据,所以要首先配置中断函数的优先级。 nvic_irq_enable(ADC0_1_IRQn,0,0); 3.中断服务函数 在中断函数中进行读取数据,将数据存放在变量adc_convertedValue中。需要注...