[STM8] 求教,关于stm8L152 12864液晶的问题

[复制链接]
4237|11
 楼主| LINJOSHUA 发表于 2011-8-31 09:32 | 显示全部楼层 |阅读模式
最近我用STM8L15x的固件库编写一个12864的液晶显示,但是液晶无法显示出来,而且有时会乱码
#include "stm8l15x.h"
#define uchar unsigned char
#define E_H() (GPIO_SetBits(GPIOD,GPIO_Pin_7))
#define E_L() (GPIO_ResetBits(GPIOD,GPIO_Pin_7))
#define RS_H() (GPIO_SetBits(GPIOD,GPIO_Pin_5))
#define RS_L() (GPIO_ResetBits(GPIOD,GPIO_Pin_5))
#define RW_H() (GPIO_SetBits(GPIOD,GPIO_Pin_6))
#define RW_L() (GPIO_ResetBits(GPIOD,GPIO_Pin_6))

uchar table0[]="中国";
uchar table1[]="我爱电子";
uchar table2[]="1234567890";
/***********延时函数*************/
void delay(uint8_t  a)
{
  uchar i;
    for(a;a>0;a--)
  for(i=0;i<200;i++);
}
/************使用外部时钟**************/
void CLK_CONFIG(void)
{
   CLK_HSEConfig(CLK_HSE_ON);  //使用HSE时钟
  CLK_SYSCLKSourceSwitchCmd(ENABLE);//启用切换时钟
  CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_HSE);//将系统时钟换成HSE
  CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1); //系统时钟预分频
  CLK_ClockSecuritySystemEnable();  //使用时钟安全系统CSS
}
/*************GPIO初始化****************/
void GPIO_CONFIG(void)
{
   GPIO_Init(GPIOB,GPIO_Pin_All,GPIO_Mode_Out_PP_Low_Fast);
  //初始化GPIOB推挽输出,低,高速
  GPIO_Init(GPIOD,GPIO_Pin_All,GPIO_Mode_Out_PP_Low_Fast);
}
/***********写指令函数**************/
void wcom(uchar com)
{
    RS_L();
   E_L();
    GPIO_Write(GPIOB,com);
    delay(2);
   E_H();
   E_L();
}
/**************12864液晶初始化********************/
void init_12864(void)
{
    wcom(0x38);
    wcom(0x0c);
    wcom(0x06);
    wcom(0x01);
    wcom(0x80);
    RW_L();
}
/***********写指令函数**************/
void wdata(uchar data)
{
    RS_L();
    E_L();
    GPIO_Write(GPIOB,data);
    delay(2);  
    E_H();
    E_L();
}
/***********显示函数************/
void display(uchar *s)
{
    while(*s<0)
  {
        wdata(*s++);
        delay(200);
    }
}
void main(void)
{
  CLK_CONFIG();
GPIO_CONFIG();
init_12864();
    wcom(0x80);
   
  display(table2);
    wcom(0x91);      //第二行地址值
    display(table1);
    wcom(0x88);      //第三行地址值
   display(table2);
  while(1);
}
IJK 发表于 2011-8-31 09:38 | 显示全部楼层
1.参考别人的代码
2.用示波器来查看SPI发送的数据是否正确
 楼主| LINJOSHUA 发表于 2011-8-31 10:16 | 显示全部楼层
我在网上找了很久还是没有STM8L 12864驱动的代码
 楼主| LINJOSHUA 发表于 2011-8-31 10:17 | 显示全部楼层
2# IJK
我在网上找了很久还是没有STM8L 12864驱动的代码
yinyangdianzi 发表于 2011-8-31 10:52 | 显示全部楼层
L152这类资料还是比较少的。。。。
难哦。。。
目前客户群在逐渐扩大。。。。、
相信这个系列的资料也会铺天盖地
IJK 发表于 2011-8-31 12:28 | 显示全部楼层
2# IJK  
我在网上找了很久还是没有STM8L 12864驱动的代码
LINJOSHUA 发表于 2011-8-31 10:17


找其它芯片 12864驱动的代码,只要是C语言的,应该都可以参考
香水城 发表于 2011-8-31 12:33 | 显示全部楼层
难道换一双筷子,你就不会吃饭了?

MCU只是实现驱动LCD的一个工具,你要掌握的是驱动的方法。知道了方法,用什么工具无所谓。
 楼主| LINJOSHUA 发表于 2011-8-31 13:52 | 显示全部楼层
7# IJK
不用固件库我可以编写出来,而且还行的,但是不知道为什么,用固件库液晶显示的是乱码了,没有我想要的效果
IJK 发表于 2011-8-31 16:05 | 显示全部楼层
7# IJK  
不用固件库我可以编写出来,而且还行的,但是不知道为什么,用固件库液晶显示的是乱码了,没有我想要的效果
LINJOSHUA 发表于 2011-8-31 13:52


既然不用固件库可以,为什么还要用固件库? 似乎有点画蛇添足 了
suzhiqiang168 发表于 2012-11-1 17:01 | 显示全部楼层
ak470927 发表于 2012-12-10 11:48 | 显示全部楼层
单片机的找到,然后移植过去,延时做好,基本上就差不多
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

5

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部