您的位置 首页 发布

STM8学习笔记(三):GPIO操作

乘着有时间,把有关GPIO的应用也顺便弄了主要是各种液晶吧,手上正好有1602的液晶,12864的液晶,主控芯片是s6b0108的不带字库,还有上次买

乘着有时间,把有关GPIO的使用也趁便弄了

主要是各种液晶吧,手上正好有1602的液晶,12864的液晶,主控芯片是s6b0108的

不带字库,还有前次买的一个2.4寸的TFT彩屏,320*240的,主控芯片是ILI9325的

由于之前用51和STM32都驱动过,所以这次就没写什么,仅仅简略的移植了

下面仅仅最简略的底层驱动

/*************************TFT*************************/

/*************************************************************
函数称号:LCD_Write_Cmd
功 能:写指令函数
参 数:DH:高八位
DL:低八位
返 回 值:无
说 明:无
*************************************************************/

void LCD_Write_Cmd(unsigned char DH,unsigned char DL)
{
LCD_CS0;
LCD_RS0;
GPIO_Write(LCD_DataBus,0xff);
GPIO_Write(LCD_DataBus,DH);
LCD_RW0;
LCD_RW1;
GPIO_Write(LCD_DataBus,0xff);
GPIO_Write(LCD_DataBus,DL);
LCD_RW0;
LCD_RW1;
LCD_CS1;
}

/*************************************************************
函数称号:LCD_Write_Data
功 能:写数据函数
参 数:DH:高八位
DL:低八位
返 回 值:无
说 明:无
*************************************************************/

void LCD_Write_Data(unsigned char DH,unsigned char DL)
{
LCD_CS0;
LCD_RS1;
GPIO_Write(LCD_DataBus,0xff);
GPIO_Write(LCD_DataBus,DH);
LCD_RW0;
LCD_RW1;
GPIO_Write(LCD_DataBus,0xff);
GPIO_Write(LCD_DataBus,DL);
LCD_RW0;
LCD_RW1;
LCD_CS1;
}

/*********************12864*****************************/

void LCD_WriteCmd(u8 Dat)
{
LCD_RS0;
LCD_RW0;
delayus(1);
LCD_ENABLE1;
delayus(1);
GPIO_Write(LCD_DataBus,0xff);
GPIO_Write(LCD_DataBus,Dat);
delayus(1);
LCD_ENABLE0;
delayus(1);
}

void LCD_WriteData(u8 Dat)
{
LCD_RS1;
LCD_RW0;
delayus(1);
LCD_ENABLE1;
delayus(1);
GPIO_Write(LCD_DataBus,0xff);
GPIO_Write(LCD_DataBus,Dat);
delayus(1);
LCD_ENABLE0;
delayus(1);
}

/*******************1602********************/

/******************************************************************/
/* 写入指令函数 */
/******************************************************************/
void LCD_WriteCmd(unsigned char cmd)
{
LCD_DelayMs(5);//操作前时间短延时,确保信号安稳
LCD_EA_L;
LCD_RS_L;
LCD_RW_L;

LCD_EA_H;
GPIO_Write(LCD_BUS,cmd);
LCD_EA_L;
}
/******************************************************************/
/* 写入数据函数 */
/******************************************************************/
void LCD_WriteData(unsigned char dat)
{
LCD_DelayMs(5); //操作前时间短延时,确保信号安稳
LCD_EA_L;
LCD_RS_H;
LCD_RW_L;

LCD_EA_H;
GPIO_Write(LCD_BUS,dat);
LCD_EA_L;
LCD_RS_L;
}

/*************************************************************

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/fabu/260414.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部