[mw_shl_code=c,true]#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "dma.h"
#include "uart1.h"
#include "lcd.h"
/************************************************
ALIENTEK战舰STM32开发板实验1
跑马灯实验
技术支持:www.openedv.com
淘宝店铺:http://eboard.taobao.com
关注微信公众平台微信号:"正点原子",免费获取STM32资料。
广州市星翼电子科技有限公司
作者:正点原子 @ALIENTEK
************************************************/
int main(void)
{
float temp;
u16 adcx;
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 2
uart_init(115200); // 115200
LED_Init(); //初始化与LED连接的硬件接口
// LED0= 1;
LCD_Init();
// LED0= 0;LED1 = 1;
MyDMA_Config();
// LED0= 1;LED1 = 0;
POINT_COLOR=RED;//设置字体为红色
LCD_ShowString(60,50,200,16,16,"WarShip STM32");
LCD_ShowString(60,70,200,16,16,"DMA_ADC TEST");
LCD_ShowString(60,90,200,16,16,"ZhangXiaolong");
LCD_ShowString(60,110,200,16,16,"2017/11/05");
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");
LED0= 1;LED1 = 1;
while(1)
{
adcx=ADC_Value[0];
LCD_ShowxNum(156,130,adcx,4,16,0);//
temp=(float)(*ADCtoUART1_Value)*(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(250);
LCD_ShowNum(80,150,(3.3f*(*ADCtoUART1_Value)/4096),5,16);
Voltage_Printf();//输出当前电池电压值一百倍
delay_ms(100);//延时
}
}
[/mw_shl_code]
我用DMA1采集ADC1的通道1(PA1)的电压值,然后用DMA1把采集到的电压值用USART1发送给串口,可是为什么烧录程序后LCD是不开的,程序也不跑,要复位后才亮,程序才跑
|