OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4726|回复: 3

LCD

[复制链接]

11

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2013-4-5
在线时间
0 小时
发表于 2013-5-21 15:23:26 | 显示全部楼层 |阅读模式
原子哥,我最近弄一个LCD头文件。由于LCD管脚跟用的你的mini板不一样,我就用以前的给改了,但是不行,虽然能显示。触摸屏也能用,但是只要跟定时器一块用,主函数中就不能用关于液晶的东西,包括写字或者是清屏,如果用了,就显示不正常,屏幕一直闪,主函数循环一段时间后就不执行了。请问这是什么原因?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-21 16:07:34 | 显示全部楼层
能显示,触摸也能用。说明很正常了啊。
中断,屏幕闪,这你得分析代码了。
液晶显示无非就是初始化,画点。没了。其他的能影响到他,必须通过指令去影响,你看看中断干了什么事吧。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

11

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2013-4-5
在线时间
0 小时
 楼主| 发表于 2013-5-21 16:16:22 | 显示全部楼层
我在中断中也是显示的东西,发现这个现象后我就试了试。一个显示,另一个是DAC的赋值,其他就没有了。原子哥,你给看看吧,我整了好几天了。都疯了。光头文件就弄了好几天,由于上这个问题了
void TIM3_Init(void)
{
RCC->APB1ENR|=1<<1;//初始化定时器3
TIM3->ARR=1600;
TIM3->SC=7119;
TIM3->DIER|=1<<0;//zhongduanshineng 
TIM3->DIER|=1<<6;//zhongduanyunxu
TIM3->CR1|=1<<0;
MY_NVIC_Init(1,0,TIM3_IRQChannel,2);

}
void TIM2_Init(void)
{
RCC->APB1ENR|=1<<0;//初始化定时器3
TIM2->ARR=5000;
TIM2->SC=7119;
TIM2->DIER|=1<<0;//zhongduanshineng 
TIM2->DIER|=1<<6;//zhongduanyunxu
// TIM5->CR1|=1<<7;
TIM2->CR1|=1<<0;
MY_NVIC_Init(1,1,TIM2_IRQChannel,2);

}


void TIM3_IRQHandler(void)
{
  if(TIM3->SR&0x0001)
{
i=i+10;
if(i>=4096){i=0;} DAC->SWTRIGR|=1<<0;//使能软件触发
DAC->DHR12R1=i;  //LED1=~LED1 ;
// printf("%d\n",DAC->DHR12R1) ;
LCD_Show2Num(20,30,i,4,16,0); 
LCD_Show2Num(20,50,DAC->DHR12R1,4,16,0);
TIM3->SR&=~(1<<0);
}

}
void dac_Init(void)
{
guanjiao_Init();
RCC->APB1ENR|=1<<29;//开时钟
DAC->CR&=0x0000;
DAC->CR|=1<<0;  //使能DAC1
    DAC->CR|=0<<1;  //DAC1输出缓存不使能 BOFF1=1
    DAC->CR|=1<<2;  //不使用触发功能 TEN1=0
DAC->CR|=4<<3;//设置为软件触发,
// DAC->CR&=0<<6;//设置为输出三角波
DAC->CR|=3<<6;  //不使用波形发生
    DAC->CR|=1<<8;  //屏蔽、幅值设置
    DAC->CR&=0<<12;       //DAC1 DMA不使能 
DAC->SWTRIGR|=1<<0;//使能软件触发
DAC->CR|=1<<0;  //使能DAC1
DAC->DHR12R1=0;

}

void guanjiao_Init(void)
{
 
RCC->APB2ENR|=1<<2;
GPIOA->CRL&=0xFF00FFFF;
GPIOA->CRL|=0x00000000;
GPIOA->ODR|=3<<4;
LED0=1;

}

void TIM2_IRQHandler(void)
{
  if(TIM2->SR&0x0001)
{  
adcxianshi(ADC_CH0);
TIM2->SR&=~(1<<0);
}
}
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-21 21:10:29 | 显示全部楼层
回复【3楼】hiayan19910702:
---------------------------------
有没有仿真器?跟踪代码看一下吧。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-19 14:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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