你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

调了几天的12864终于点亮了.

[复制链接]
wamcncn 发布时间:2015-1-19 18:50
STM32电机培训online,大佬带你玩电机


从1月10收到某宝买的12864后,下班回家测试,先拿上手的STC80C52开发板,测试,上电下载,除了屏幕亮,不显示字.担心买到某宝的假货,反复检查程序,没有错误,哎,嵌入式不难,难的是程序有问题,硬件有问题,查资料,看手册,实在不行了. 期间都准备给某宝退货了突然想起来自己不是焊了2块板子么,换另一块试试.
结果令人欣慰,可以显示,看来液晶没坏,是原来的板子有问题.

确定12864是好的了,下面继续学习摩尔吧之SPI驱动教程,看了几天并写程序,修改,下载,依然不能显示字符等.查百度,看视频,全是10X的,不过原理总是一样吧,配置GPIO口时钟,SPI时钟,各种例程看了好多个,模拟的也看.只要跟12864挂边的都看,手册,时序图.

昨天看视频里的仿真很好很直观,尝试调试12864驱动,结果出现错误,又是百度一箩筐.怎么改也不行,把DUG界面改个面目全非,恢复不了,干脆卸了重装吧,装完器件发现dcomutil_libfnp.dll 这个动态链接库老是被360当毒杀掉,于是恢复掉,并用模拟示波器在DUG单步运行观察串口时钟和数据的发送.,结果波形没看到,看到液晶屏显示,给人莫名其妙的感觉.期间因为用了PB3,看到SWO有用,又调到了PB4. 正常显示后,又换回PB3,也正常,看来不是引脚冲突.

总之,我感觉这次调试就是因为360杀毒给把红色的文件删了,才引起的液晶不显示.  杀毒软件也误杀.


/*Includes --------------------------------------------------------------------*/
#include  "lcd.h"
#include  "includes.h"
unsigned char disps[]={"I love STM32!"};
unsigned char dispx[]={"我爱社区!"};

void LCD_GPIO_Init(void)
{
     GPIO_InitTypeDef GPIO_InitStructure ;
     RCC_AHBPeriphClockCmd(LCD_PORT_CLK ,ENABLE);
     
     GPIO_InitStructure.GPIO_Pin   = LCD_CLK_PIN|LCD_SID_PIN ;
     GPIO_InitStructure.GPIO_Mode =  GPIO_Mode_OUT;
     GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  //   GPIO_InitStructure.GPIO_PuPd =  GPIO_PuPd_UP;
     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
     GPIO_Init(LCD_PRORT, &GPIO_InitStructure);
     
      
}
void send_command(unsigned char command_data)
{
unsigned char i;
unsigned char i_data;
i_data=0xf8;
LCD_CLK_0;
for(i=0; i<8; i++)
{
  
  if(i_data & 0x80)
  {
   LCD_SID_1;
  }
  else
  {
   LCD_SID_0;
  }
  LCD_CLK_0;
  LCD_CLK_1;
  
  i_data=i_data<<1;
}
i_data=command_data;
i_data=i_data&0xf0;
for(i=0; i<8; i++)
{
  
  if(i_data & 0x80)
  {
   LCD_SID_1;
  }
  else
  {
   LCD_SID_0;
  }
  LCD_CLK_0;
  LCD_CLK_1;
  i_data=i_data<<1;
}
i_data=command_data;
i_data=i_data<<4;
for(i=0; i<8; i++)
{
  
  if(i_data & 0x80)
  {
   LCD_SID_1;
  }
  else
  {
   LCD_SID_0;
  }
  LCD_CLK_0;
  LCD_CLK_1;
  i_data=i_data<<1;
}
Delay_Ms(10);
}
void send_data(unsigned char command_data)
{
unsigned char i;
unsigned char i_data;
i_data=0xfa;
//LCD_CLK_0;
for(i=0; i<8; i++)
{
  
  if(i_data & 0x80)
  {
   LCD_SID_1;
  }
  else
  {
   LCD_SID_0;
  }
  LCD_CLK_0;
  LCD_CLK_1;
  i_data=i_data<<1;
}
i_data=command_data;
i_data=i_data&0xf0;
for(i=0; i<8; i++)
{
  
  if(i_data & 0x80)
  {
   LCD_SID_1;
  }
  else
  {
   LCD_SID_0;
  }
  LCD_CLK_0;
  LCD_CLK_1;
  i_data=i_data<<1;
}
i_data=command_data;
i_data=i_data<<4;
for(i=0; i<8; i++)
{
  
  if(i_data & 0x80)
  {
   LCD_SID_1;
  }
  else
  {
   LCD_SID_0;
  }
  LCD_CLK_0;
  LCD_CLK_1;
  i_data=i_data<<1;
}
Delay_Ms(10);
}


void lcd_init(void)
{  

Delay_Ms(100);
send_command(0x30);
send_command(0x02);
send_command(0x06);
send_command(0x0c);
send_command(0x01);
send_command(0x80);

}

void display_s(void)
{  
unsigned char a;
send_command(0x80);
  for(a=0;a<13;a++)
{
  send_data(disps[a]);  
  }
}
void display_x(void)
{  
unsigned char a;
send_command(0x92);
  for(a=0;a<11;a++)
{
  send_data(dispx[a]);  
  }
}

void Delay(unsigned int nCount)
{
  
  while (nCount != 0)
  {
  nCount--;
  }
}
void Delay_Us(unsigned int nCount)
{
  
  while (nCount != 0)
  {
    nCount--;  
    Delay(150);
  }
}
void Delay_Ms(unsigned int nCount)
{
  
  while (nCount != 0)
  {
nCount--;  
Delay(15000);
  }
}




m0zz.jpg
收藏 2 评论23 发布时间:2015-1-19 18:50

举报

23个回答
wamcncn 回答时间:2015-1-19 19:47:31
harvardx 发表于 2015-1-19 19:22
相对来说 spi的 12864屏幕还是比较好玩的 .那几个典型的控制器

开始也是用SPI驱动的,怎么也不显示,所以先用模拟调亮,以后再用SPI写
wamcncn 回答时间:2015-1-19 19:46:03
zhangdaijin 发表于 2015-1-19 19:34
底层的驱动不是又现成的么?

因为软件的问题,底层不显示才转做模拟了,然后再转回去
Dylan疾风闪电 回答时间:2016-1-18 08:14:08
恭喜恭喜!
LCD模块还是比较好的,只要资料齐全基本是时间问题。
相对痛苦的是直接用生产厂家的样品,好辛苦。
harvardx 回答时间:2015-1-19 19:03:16
恭喜 终于
kqh1120 回答时间:2015-1-19 19:13:47
就是上次你发的那个几块钱的??
wamcncn 回答时间:2015-1-19 19:17:45

谢谢,第1次与12864亲密接触并控制了它
wamcncn 回答时间:2015-1-19 19:18:12
zfz0122 发表于 2015-1-19 19:13
就是上次你发的那个几块钱的??

什么几块钱?
harvardx 回答时间:2015-1-19 19:22:30
相对来说 spi的 12864屏幕还是比较好玩的 .那几个典型的控制器
netlhx 回答时间:2015-1-19 19:29:43
跟我的一样,质量渣渣
zhangdaijin 回答时间:2015-1-19 19:34:55
底层的驱动不是又现成的么?
zhangdaijin 回答时间:2015-1-19 19:48:19
原理如此,楼主还怀疑到遇到JS了  呵呵
lkl0305 回答时间:2015-1-19 21:00:13
楼主终于搞定了,恭喜啊
AndyYau-268557 回答时间:2015-1-19 21:05:21
恭喜啊  楼主厉害
沐紫 回答时间:2015-1-20 09:09:23
360也能信?最好把360卸了
党国特派员 回答时间:2015-1-20 10:06:29
1.png
12下一页

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版