学前班
最后登录1970-1-1
在线时间 小时
注册时间2014-8-19
|
本帖最后由 3050271923 于 2014-8-19 11:30 编辑
小弟想把液晶显示英文和adc超级终端显示电压两个程序合并,使之在液晶上显示出电压,从dma读数据给fsmc显示出来的数字却是好几千,如果单纯显示数字又是可以的,求大师解答!以下是我修改的主函数
#include "stm32f10x.h"
#include "bsp_usart1.h"
#include "bsp_adc.h"
#include "bsp_ili9341_lcd.h"
extern void Lcd_Delay(__IO uint32_t nCount);
// ADC1×a»»μÄμçÑ1Öμí¨1yMDA·½ê½′«μ½SRAM
extern __IO uint16_t ADC_ConvertedValue;
// ¾Ö2¿±äá¿£¬óÃóú±£′æ×a»»¼ÆËãoóμÄμçÑ1Öμ
float ADC_ConvertedValueLocal;
// èí¼tÑóê±
void Delay(__IO uint32_t nCount)
{
for(; nCount != 0; nCount--);
}
uint16_t n,h;
/**
* @brief Ö÷oˉêy
* @param ÎT
* @retval ÎT
*/
int main(void)
{
/* USART1 config */
//USART1_Config();
/* enable adc1 and config adc1 to dma mode */
LCD_Init();
LCD_Clear(0, 0, 240, 320, BACKGROUND);
LCD_DispChar(40, 40, 'A', RED);
LCD_DispStr(10, 10, (uint8_t *)"This is a vcc zhang lei display asci", RED);
LCD_DispStr(40, 100, (uint8_t *)"count:", RED);
ADC1_Init();
//printf("\r\n ----ÕaêÇò»¸öADCêμÑé(DMA′«êä)----\r\n");
while (1)
{
ADC_ConvertedValueLocal =(float) ADC_ConvertedValue/4096*3.3; // ¶áè¡×a»»μÄADÖμ
n=(uint16_t)ADC_ConvertedValue;
h=(uint16_t)(1000*(ADC_ConvertedValueLocal-n));
LCD_DisNum(100, 100, n, RED);
LCD_DisNum(130, 100, h, RED);
Lcd_Delay(0xAFFf>>4);
// printf("\r\n The current AD value = 0x%04X \r\n", ADC_ConvertedValue);
//printf("\r\n The current AD value = %f V \r\n",ADC_ConvertedValueLocal);
Delay(0xffffee);
}
}
|
|