野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14726|回复: 4

野火STM32MINI板ADC与LCD有冲突吗?

[复制链接]
发表于 2014-11-22 08:01:24 | 显示全部楼层 |阅读模式
本帖最后由 11kxmx 于 2014-11-25 11:33 编辑

各位朋友好,我将例程中的ADC实验与LCD显示字符结合起来,想把ADC采集的数据显示在LCD上,但发现LCD只显灰色,连个0也不显示,去掉ADC1 init,LCD可正常显示数字,是不是硬件有冲突?管脚配置我看了没冲突,是不是内部资源冲突了?

我又改了一下,这次是将ADC程序加入LCD程序中,只修改主程序
结果可显示AD转换数值,但旋动电位器,显示数值不变化
复位后重新测量数值有变化,好像是连续采集变成了单次采集,不知为什么?
#include "stm32f10x.h"
#include "bsp_ili9341_lcd.h"
#include "bsp_usart1.h"
#include "bsp_adc.h"
extern void Lcd_Delay(__IO uint32_t nCount);
extern uint16_t ADC_GetConversionValue(ADC_TypeDef* ADCx);
uint32_t n;
uint16_t m;
int main(void)
{  
       LCD_Init();      
        
        ADC1_Init();//增加了本句
  
        LCD_Clear(0, 0, 240, 320, BACKGROUND);        
  
        LCD_DispChar(60, 60, 'A', RED);

  
        LCD_DispStr(10, 10, (uint8_t *)"This is a lcd demo to display ascii", RED);        
        
        LCD_DispStr(40, 100, (uint8_t *)"count:", RED);
                for( n=0; n<10000; n++ )
        {
                LCD_DisNum(100, 100, n, RED);
                m=ADC_GetConversionValue(ADC1);//增加了本句     
                LCD_DisNum(100, 150,m, RED);//增加了本句
                Lcd_Delay(0xAFFf>>1);//修改了此句,让显示数字更新慢一些,便于观察
        }

        while( 1 );
}

回复

使用道具 举报

发表于 2014-11-22 08:52:51 | 显示全部楼层
没有冲突的,你可以使用sprintf函数把adc数据转化成字符串,再使用液晶显示
回复 支持 反对

使用道具 举报

发表于 2014-11-22 09:06:32 | 显示全部楼层
没有冲突,应该是程序问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-24 21:12:06 | 显示全部楼层
本帖最后由 11kxmx 于 2014-11-25 07:16 编辑
fire 发表于 2014-11-22 09:06
没有冲突,应该是程序问题。


我有改了一下,这次是将ADC程序加入LCD程序中,只修改主程序
结果可显示AD转换数值,但旋动电位器,显示数值不变化
复位后重新测量数值有变化,好像是连续采集变成了单次采集,不知为什么?
#include "stm32f10x.h"
#include "bsp_ili9341_lcd.h"
#include "bsp_usart1.h"
#include "bsp_adc.h"
extern void Lcd_Delay(__IO uint32_t nCount);
extern uint16_t ADC_GetConversionValue(ADC_TypeDef* ADCx);
uint32_t n;
uint16_t m;
int main(void)
{  
       LCD_Init();      
        
        ADC1_Init();//增加了本句
  
        LCD_Clear(0, 0, 240, 320, BACKGROUND);        
  
        LCD_DispChar(60, 60, 'A', RED);

  
        LCD_DispStr(10, 10, (uint8_t *)"This is a lcd demo to display ascii", RED);        
        
        LCD_DispStr(40, 100, (uint8_t *)"count:", RED);
                for( n=0; n<10000; n++ )
        {
                LCD_DisNum(100, 100, n, RED);
                m=ADC_GetConversionValue(ADC1);//增加了本句     
                LCD_DisNum(100, 150,m, RED);//增加了本句
                Lcd_Delay(0xAFFf>>1);
        }

        while( 1 );
}
回复 支持 反对

使用道具 举报

发表于 2015-8-8 11:25:09 | 显示全部楼层
怎么解决的,我也是这个出错了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 03:11 , Processed in 0.027034 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表