OpenEdv-开源电子网

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

小弟求帮助。。。。LCD(STM8L)

[复制链接]

22

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2012-11-3
在线时间
0 小时
发表于 2012-11-6 20:58:52 | 显示全部楼层 |阅读模式
 

#include <iostm8l152c6.h>


void Delay(unsigned char x)
{
  unsigned char i,j;
  for(i=0;i<x;i++)
    for(j=0;j<x;j++);
}
void SPI1_init()
{
  CLK_PCKENR1 |= 0X10; //使能SPI1外部门控
  PB_DDR |= MASK_PB_DDR_DDR6 | MASK_PB_DDR_DDR5;
  PB_CR1 |= MASK_PB_CR1_C16 | MASK_PB_CR1_C15;     
  PD_DDR |= MASK_PD_DDR_DDR7 | MASK_PD_DDR_DDR6 | MASK_PD_DDR_DDR5 | MASK_PD_DDR_DDR4;
  PD_CR1 |= MASK_PD_CR1_C17 | MASK_PD_CR1_C16 | MASK_PD_CR1_C15 | MASK_PD_CR1_C14;
  //设置PB6(MOSI),PB5(CLK),PD7(CE),PD6(DC),PD5(BL),PD4(RST)为推挽输出B7(MISO)悬浮输入;
  SPI1_CR2 |= MASK_SPI1_CR2_SSM | MASK_SPI1_CR2_SSI;     //使能软件控制,并且设置为主模式;
  SPI1_CR1 |= MASK_SPI1_CR1_MSTR | MASK_SPI1_CR1_BR;    //开主模式,设置波特率;
  SPI1_CR1 |= MASK_SPI1_CR1_SPE;                        //使能SPI1;
}
void LCD_WRITE_BYTE(unsigned char data,unsigned char command)
{
  PD_ODR_bit.ODR7=0;      //开启CE
  if(command==0)
    PD_ODR_bit.ODR6=0;   //写命令
  else
    PD_ODR |= MASK_PD_ODR_ODR6;  //写数据
  SPI1_DR=data;                  //传送
  Delay(10);
  while(!(SPI1_SR&0X02));
  PD_ODR |= MASK_PD_ODR_ODR7; //关闭CE
}
void LCD_clear(void)
{
  unsigned int i;
  LCD_WRITE_BYTE(0x0c, 0);   
  LCD_WRITE_BYTE(0x80, 0);   
  for (i=0; i<504; i++)
    LCD_WRITE_BYTE(0, 1);
}
void LCD_init()
{
  PD_ODR |= MASK_PD_ODR_ODR4;
  Delay(1);
  PD_ODR |= MASK_PD_ODR_ODR4;
  Delay(1);
  PD_ODR |= MASK_PD_ODR_ODR7;
  Delay(1);
  PD_ODR_bit.ODR7=0;
  Delay(1);
  LCD_WRITE_BYTE(0X21,0);
  LCD_WRITE_BYTE(0XC8,0);
  LCD_WRITE_BYTE(0X06,0);
  LCD_WRITE_BYTE(0X13,0);
  LCD_WRITE_BYTE(0X20,0);
  LCD_clear();
  LCD_WRITE_BYTE(0X0C,0);
  PD_ODR |= MASK_PD_ODR_ODR7;
}
void LCD_set_XY(unsigned char X, unsigned char Y)
{
    LCD_WRITE_BYTE(0x40 | Y, 0);    // column
    LCD_WRITE_BYTE(0x80 | X, 0);                  // row
}

void main()
{
  unsigned char temp;
  SPI1_init();
  LCD_init();
  PD_ODR_bit.ODR5=1;
  LCD_WRITE_BYTE(0X0C,1);
  temp=SPI1_DR;
  while(1);
}
液晶上啥都没有   ,  难道我还忘设置什么了吗?   求帮助 。。。。。我没有设置坐标应该没有事情吧

我决定的事,决定放弃。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2012-11-6 22:01:05 | 显示全部楼层
回复【楼主位】KFC:
---------------------------------
什么型号的液晶?
有没有参考代码?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

22

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2012-11-3
在线时间
0 小时
 楼主| 发表于 2012-11-6 22:47:03 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
N5110       原子哥............求教     初学什么都不会
我决定的事,决定放弃。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2012-11-6 23:13:49 | 显示全部楼层
确定硬件无问题,再慢慢折腾软件.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

22

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2012-11-3
在线时间
0 小时
 楼主| 发表于 2012-11-7 13:02:20 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
硬件应该没有问题,   原子哥N5110没有MISO引脚,我没有设置单线双向让它返回,应该不会影响吧?
我决定的事,决定放弃。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2012-11-7 19:03:13 | 显示全部楼层
回复【5楼】KFC:
---------------------------------
不影响,你用硬件SPI?
先软件模拟SPI调试下吧!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-3-1 05:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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