OpenEdv-开源电子网

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

12864(20引脚)不显示

[复制链接]

6

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
119
金钱
119
注册时间
2015-9-21
在线时间
19 小时
发表于 2015-10-21 14:02:08 | 显示全部楼层 |阅读模式
5金钱

#define LCD12864_SID_OUT(x) (x) ? (GPIOC->BSRR |= 1<<1) : (GPIOC->BRR |= 1<<1)
#define LCD12864_SCLK_OUT(x) (x) ? (GPIOC->BSRR |= 1<<0) : (GPIOC->BRR |= 1<<0)
//LCD12864_SCLK_OUT(1表示输出1,LCD12864_SCLK_OUT(0)表示输出0。

#define CS     GPIO_Pin_2       //PC2
#define SID      GPIO_Pin_1    //PC1
#define SCLK     GPIO_Pin_0   //PC0

#define SET(n)      GPIO_SetBits(GPIOC,n)             //置1
#define RESET(n)      GPIO_ResetBits(GPIOC,n)     //置0

//配置SCLK、CS、SID引脚
void LCDIO_init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

GPIO_InitStructure.GPIO_Pin = CS|SID|SCLK; 
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure); 
}

void LCD12864_Init(void)
{
delay_ms(200);
SET(CS);                //CS拉高

delay_ms(50); 
LCD12864_Write(WRITE_CMD, 0x30); /
delay_us(150); 
  
LCD12864_Write(WRITE_CMD, 0x30); 
delay_us(40); 

LCD12864_Write(WRITE_CMD, 0x0C); 
delay_us(150); 

LCD12864_Write(WRITE_CMD, 0x01); 
delay_ms(15); 

LCD12864_Write(WRITE_CMD, 0x06); 
}

int main(void)
{
SystemInit();
  delay_init(); 
LCDIO_init();
LCD12864_Init();
LCD12864_Display_Words(0, 0, "Hello, world!");
LCD12864_Display_Words(1, 0, "www.eeboard.com");
while(1);
}

说明:我的是串行驱动液晶屏,CS一直拉高(软件控制),RST不复位也是一直拉高(硬件控制),完整程序看附件!


LCD.rar

5.98 MB, 下载次数: 38

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

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2015-10-21 16:15:35 | 显示全部楼层
找供应商要一下例程吧

这个驱动不一样,程序也有区别的
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复

使用道具 举报

头像被屏蔽

88

主题

231

帖子

2

精华

高级会员

Rank: 4

积分
844
金钱
844
注册时间
2013-4-11
在线时间
40 小时
发表于 2015-10-21 16:31:43 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

6

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
119
金钱
119
注册时间
2015-9-21
在线时间
19 小时
 楼主| 发表于 2015-10-21 17:06:39 | 显示全部楼层
回复【3楼】nonplus:
---------------------------------
void LCD12864_SendByte(u8 Byte)
{
u8 i;
for(i = 0; i < 8; i++)
{
LCD12864_SCLK_OUT(0); //拉低了
LCD12864_SID_OUT(Byte & (0x80>>i)); //
LCD12864_SCLK_OUT(1); //
LCD12864_SCLK_OUT(0);
}
}

这个函数发送数据前已经拉低了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-19 07:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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