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

发布者:mu22最新更新时间:2015-12-14 来源: eefocus关键字:STM8  学习笔记  GPIO操作 手机看文章 扫描二维码
随时随地手机看文章
乘着有时间,把有关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;
}
 

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

关键字:STM8  学习笔记  GPIO操作 引用地址:STM8学习笔记(三):GPIO操作

上一篇:STM8学习笔记(二):GPIO的输入
下一篇:STM8S学习笔记之一

推荐阅读最新更新时间:2024-03-16 14:40

STM32学习笔记(5):通用定时器PWM输出
1. TIMER输出PWM基本概念 脉冲宽度调制(PWM),是英文 Pulse Width Modulation 的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。一般用来控制步进电机的速度等等。 STM32的定时器除了TIM6和TIM7之外,其他的定时器都可以用来产生PWM输出,其中高级定时器TIM1和TIM8可以同时产生7路的PWM输出,而通用定时器也能同时产生4路的PWM输出。 1.1 PWM输出模式 STM32的PWM输出有两种模式,模式1和模式2,由TIMx_CCMRx寄存器中的OCxM位确定的( 110 为模式1, 111 为模式2
[单片机]
STM32学习笔记之正交编码器接口
最近做一个项目,主控芯片用STM32RBT6,要用到光栅尺,本来带一个控制器的,通过控制器的232可以读取光栅尺的数据,但这个控制器太大,设备中放不下,于是,考虑自己做一个,网上看到很多有用CPLD的方案,后来无意间发现stm32的定时器可以配置成编码器,甚喜 高兴之余,突然发现stm32的定时器是16位的,我的光栅尺的计数会超过65535,于是在21ic论坛上和几位高手请教,最终确定的方案 工作过程是配置TIM3为正交编码器模式,并定一个10ms的中断,每10ms读取一次计数值,10ms的前提是在10ms内计数器不溢出(这个思想要感谢21ic的 lxyppc ) 以下是部分代码:(这些代码修改于ST官方的例程,但我的工程用的
[单片机]
STM8 SPI从机
硬件平台:stm8s103 编译环境:IAR for stm8 //SPI从机初始化 模式 0 : CPOL=0 CPHA=0 void spiSlaveInit(void) { SPI_CR1_SPE = 0; // 禁用SPI Disable SPI SPI_CR1_CPOL = 0; // CPOL = 0 SPI_CR1_CPHA = 0; // CPHA = 0 SPI_ICR_RXIE = 1; // 使能SPI接收中断 SPI_CR1_SPE = 1; // 使能SPI } //中断函数 #pra
[单片机]
STM32学习笔记4:外部中断
NVIC: STM32F40xx/STM32F41xx的92个中断里面,包括10个内核中断和82个可屏蔽中断,具有16级可编程的中断优先级,而我们常用的就是这82个可屏蔽中断。 那么我们如何管理82个外部中断呢? 首先,对STM32中断进行分组,组0~4。同时,对每个中断设置一个抢占优先级和一个响应优先级值。分组配置在SCB- AIRCR寄存器,如下表: 抢占优先级 & 响应优先级区别1.高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。 2.抢占优先级相同的中断,高响应优先级不可以打断低响应优先级的中断。 3.抢占优先级相同的中断,当两个中断同时发生的情况下,哪个响应优先级高,哪个先执行。 4.如果两个中断的
[单片机]
STM32<font color='red'>学习</font><font color='red'>笔记</font>4:外部中断
【众拳STM8 47 讲】CAT24WC 存储器工作原理
特点 与400KHz I2C总线兼容 1.8到6.0伏工作电压范围 低功耗CMOS技术 写保护功能当WP为高电平时进入写保护状态 页写缓冲器 100万次编程/擦除周期 可保存数据100年 8脚DIP SOIC或TSSOP封装 温度范围商业级和工业级 概述 CAT24WC01/02/04/08/16是一个1K/2K/4K/8K/16K位串行CMOS,EEPROM内部含有128/256/512/1024/2048个8位字节CATALYST公司的先进CMOS技术实质上减少了器件的功耗,CAT24WC01有一个8字节页写缓冲器CAT24WC02/04/08/16有一个16字节页写缓冲器,该器件通过I2C总线接口进行操作有一个专门的写保
[单片机]
【众拳<font color='red'>STM8</font> 47 讲】CAT24WC 存储器工作原理
STM8 存储器和寄存器映射
要了解关于STM8存储器映射、I/O端口硬件寄存器映射以及CPU/SWIM/调试模块/中断控制寄存器的详细内容请参考产品数据手册。 寄存器描述缩写 在本参考手册每一章的寄存器描述中,使用下列缩写:
[单片机]
<font color='red'>STM8</font> 存储器和寄存器映射
I.MX6Q(TQIMX6Q/TQE9)学习笔记——U-Boot移植
其实Freescale的BSP移植文档已经将u-boot的移植步骤讲述的非常详细了,但为了以后方便查阅,还是按照自己的理解记录在这里。 获取源码 根据前一篇文章搭建好LTIB环境后就可以非常方便的导出u-boot源码了。切换到ltib目录,并运行如下指令: ./ltib -m prep -p u-boot 该指令执行需要一些时间,指令执行完成后Freescale维护的u-boot-2009.8就会出现在rpm/BUILD目录下。 添加单板 为TQIMX6Q开发板创建相应的单板目录,可以参考sabresd相关的目录进行,下面是具体的步骤。 Step1. 创建board目录 创建board目录需要以下几步:
[单片机]
I.MX6Q(TQIMX6Q/TQE9)<font color='red'>学习</font><font color='red'>笔记</font>——U-Boot移植
stm32 起步 gpio操作
在工程中增加gpio lib.h和stm32头文件,如下: #include “stm32f10x.h” // Device header #include “stm32f10x_gpio.h” 调用lib配置gpio工作方式,先开启时钟,选GPIO,设置GPIO mode,gpio speed,主要看GPIO_InitTypeDef 结构体,芯片不同结构体不同,开始不清楚具体使用可以参考系统自带的example code,my setting如下: void GPIO_Initmain(void) { GPIO_InitTypeDef GPIO_InitStructure; /* Configure all
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved