#include <stm32f10x_lib.h>
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
#include "key.h"
#include "exti.h"
#include "wdg.h"
#include "timer.h"
#include "lcd.h"
#include "rtc.h"
#include "wkup.h"
#include "adc.h"
//Mini STM32开发板范例代码13
//ADC 实验
//正点原子@ALIENTEK
//技术论坛:www.openedv.com
void ADC1_2_IRQChannel(void)//中断函数
{
LED1=!LED1;
}
int main(void)
{
u16 adcx;
float temp;
Stm32_Clock_Init(9);//系统时钟设置
delay_init(72); //延时初始化
uart_init(72,9600); //串口1初始化
LED_Init();
LCD_Init();
Adc_Init();
ADC1->CR1|=1<<5;//开启中断
MY_NVIC_Init(2,2,ADC1_2_IRQChannel,2);////这里是设置中断优先级
   OINT_COLOR=RED;//设置字体为红色
LCD_ShowString(60,50,"Mini STM32");
LCD_ShowString(60,70,"ADC TEST");
LCD_ShowString(60,90,"ATOM@ALIENTEK");
LCD_ShowString(60,110,"2010/12/30");
//显示提示信息
POINT_COLOR=BLUE;//设置字体为蓝色
LCD_ShowString(60,130,"ADC_CH0_VAL:");
LCD_ShowString(60,150,"ADC_CH0_VOL:0.000V");
while(1)
{
adcx=Get_Adc(ADC_CH0);
LCD_ShowNum(156,130,adcx,4,16);//显示ADC的值
temp=(float)adcx*(3.3/4096);
adcx=temp;
LCD_ShowNum(156,150,adcx,1,16);//显示电压值
temp-=adcx;
temp*=1000;
LCD_ShowNum(172,150,temp,3,16);
LED0=!LED0;
delay_ms(250);
}
}
我想使用ADC中断,所以就在原来的基础上加了3步,1,开启中断。2,设置中断优先级。3,一个中断函数。
为什么这样编译时就会出错呢,而且这个错误我看都看不懂。原子哥能告诉我ADC中断切入函数怎么写吗
==============================================================
Build target 'Target 1'
compiling wsn19.c...
USER\wsn19.c(31): error: #18: expected a ")"
USER\wsn19.c(31): error: #101: "u8" has already been declared in the current scope
USER\wsn19.c(47): error: #18: expected a ")"
USER\wsn19.c(47): error: #167: argument of type "void (*)(void)" is incompatible with parameter of type "u8"
Target not created
=====================================================================
|