#include "stm32f10x.h"
#include "usart.h"
#include "stm32f10x_it.h"
#include "adc.h"
#include "dma.h"
#include <stdlib.h>
u16 adcx,temp;
u8 table[5];
extern u16 cmar[16];
/*发送字符串*/
void USART1_Puts(unsigned char *str)
{
while(*str)
{
USART_SendData(USART1, *str++);
while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
}
}
/*延时函数*/
void Delay(__IO u32 nCount)
{
for(; nCount != 0; nCount--);
}
/*设置中断组*/
void NVIC_Configuration(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
}
int main(void)
{
SystemInit();
NVIC_Configuration();
USART1_Config();
Adc_Init();
dma_config(DMA1_Channel4);
while(1)
{
Delay(1000000);
adcx=DigitFilter(cmar,16);
dma_start();
adcx=(1.42 - adcx*3.3/4096)*1000/4.35 + 25;
temp=adcx*330/4096;
adcx = temp;
table[0]=adcx / 100 + 0x30;
table[1]='.';
table[2]=adcx % 100/10 + 0x30;
table[3]= adcx %10 + 0x30;
table[4]='V';
Delay(100000);
USART1_Puts(table);
Delay(1000000);
}
}
联系客服