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

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

[复制链接]
wambob 发布时间: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个回答
harvardx 回答时间:2015-1-19 19:03:16
恭喜 终于
zfz0122 回答时间:2015-1-19 19:13:47
就是上次你发的那个几块钱的??
wambob 回答时间:2015-1-19 19:17:45

谢谢,第1次与12864亲密接触并控制了它
wambob 回答时间: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
底层的驱动不是又现成的么?
wambob 回答时间:2015-1-19 19:46:03
zhangdaijin 发表于 2015-1-19 19:34
底层的驱动不是又现成的么?

因为软件的问题,底层不显示才转做模拟了,然后再转回去
wambob 回答时间:2015-1-19 19:47:31
harvardx 发表于 2015-1-19 19:22
相对来说 spi的 12864屏幕还是比较好玩的 .那几个典型的控制器

开始也是用SPI驱动的,怎么也不显示,所以先用模拟调亮,以后再用SPI写
123下一页

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

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