[mw_shl_code=c,true]#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "lcd.h"
#include "adc.h"
#include "timer.h"
u16 s;
//ALIENTEK Mini STM32??·?°?·????ú??15
//ADC???é
//?????§????www.openedv.com
//?????????í??×?????????????
int main(void)
{
u16 adcx;
float temp;
delay_init(); //???±??????????
NVIC_Configuration(); //?è??NVIC????·?×é2:2????????????; 2???ì????????
uart_init(9600); //?®??????????9600
TIM3_Int_Init(4999,7199);//10Khz??????????????????5000??500ms
LED_Init(); //????????LED??????????????
LCD_Init();
Adc_Init(); //ADC??????
POINT_COLOR=RED;//?è??×??????ì??
LCD_ShowString(60,50,200,16,16,"Mini STM32");
LCD_ShowString(60,70,200,16,16,"ADC TEST");
LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK");
LCD_ShowString(60,110,200,16,16,"2014/3/9"); //void LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p)
//?????á??????
POINT_COLOR=BLUE;//?è??×?????????
LCD_ShowString(60,130,200,16,16,"ADC_CH0_VAL:");
LCD_ShowString(60,150,200,16,16,"ADC_CH0_VOL:0.000V");
while(1)
{
adcx=Get_Adc_Average(ADC_Channel_1,10);
s=adcx;
LCD_ShowxNum(156,130,adcx,4,16,0);//????ADC???? //void LCD_ShowxNum(u16 x,u16 y,u32 num,u8 len,u8 size,u8 mode)
temp=(float)adcx*(3.3/4096);
adcx=temp;
LCD_ShowxNum(156,150,adcx,1,16,0);//??????????
temp-=adcx;
temp*=1000;
LCD_ShowxNum(172,150,temp,3,16,0X80);
LED0=!LED0;
delay_ms(200);
}
}
void TIM3_IRQHandler(void) //TIM3????
{
uint16_t Data=s;
if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //?ì?é???¨??TIM????·??ú??·?:TIM ??????
{
TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); //????TIMx???????????í??:TIM ??????
LED1=!LED1;
USART_SendData(USART1,Data);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
//while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
}
}
[/mw_shl_code]
|