STM8L探索套件学习笔记-GPIO端口操作(一)

发布者:as233632621最新更新时间:2015-12-21 来源: eefocus关键字:STM8L  探索套件  学习笔记  GPIO  端口操作 手机看文章 扫描二维码
随时随地手机看文章
STM8与STM32一样提供了固件库函数,方便用户快速开发,不需要花费很多时间去查寄存器。不过没有STM32的库完善,给的说明文档是chm格式的,名字是stm8l15x_stdperiph_lib_um.chm,这个官网有下载,今天按照官方给的模板自己做个模板文件夹,方便后期的移植,这样就不要再重复设置了。首先我们看看GPIO模块,在用固件库之前先了解下GPIO里面的大体的寄存器,方便后期使用固件库。缺点是你所以输入的参数都会检测是否符合规范,必须得按照库函数里面定义的参数写。
GPIO寄存器有:输出寄存器(ODR),输入寄存器(IDR),方向寄存器(DDR),控制寄存器1(CR1)和控制寄存器2(CR2).后面三个寄存器组和可以配置为8种GPIO的模式,如下图:


而固件库函数给出了8中模式,在上面的基础上加入了输出高/输出低电平的状态。

GPIO_Mode_In_FL_No_IT浮空输入无中断 Input floating, no external interrupt
GPIO_Mode_In_PU_No_I上拉输入无中断 Input pull-up, no external interrupt
GPIO_Mode_In_FL_IT 浮空输入有中断 Input floating, external interrupt
GPIO_Mode_In_PU_IT 上拉输入有中断 Input pull-up, external interrupt
GPIO_Mode_Out_OD_Low_Fast 
开漏-输出低-高速
Output open-drain, low level, 10MHz
GPIO_Mode_Out_PP_Low_Fast 
推挽-输出低-高速
Output push-pull, low level, 10MHz
GPIO_Mode_Out_OD_Low_Slow 
开漏-输出低-低速
Output open-drain, low level, 2MHz
GPIO_Mode_Out_PP_Low_Slow 
推挽-输出低-低速
Output push-pull, low level, 2MHz
GPIO_Mode_Out_OD_HiZ_Fast 
开漏-输出高阻-高速
Output open-drain, high-impedance level, 10MHz
GPIO_Mode_Out_PP_High_Fast 
推挽-输出高-高速
Output push-pull, high level, 10MHz
GPIO_Mode_Out_OD_HiZ_Slow 
开漏-输出高阻-低速
Output open-drain, high-impedance level, 2MHz
GPIO_Mode_Out_PP_High_Slow 
推挽-输出高-低速
Output push-pull, high level, 2MHz
其他的一些函数可以参考固件库:

下面是GPIO操作的应用,GPIO写操作---板上的两个LED灯闪烁的代码
void main(void)
{
  /* Infinite loop */
  GPIO_Init(LED1_PORT, LED1_PIN, GPIO_Mode_Out_PP_Low_Fast);
  GPIO_Init(LED2_PORT, LED2_PIN, GPIO_Mode_Out_PP_Low_Fast);
  while (1)
  {
    GPIO_ToggleBits(LED1_PORT, LED1_PIN);
    Delay(0xFFFF);
    GPIO_ToggleBits(LED2_PORT, LED2_PIN);
    Delay(0xFFFF);
 
  }
}
GPIO读操作---查询按键点亮LED
void main(void)
{
  /* Infinite loop */
  GPIO_Init(LED1_PORT,LED1_PIN,GPIO_Mode_Out_PP_Low_Fast);
  //输出低电平-高速10M
  GPIO_Init(KEY_PORT,KEY_PIN,GPIO_Mode_In_FL_No_IT);
  //输入浮空-无中断
  while (1)
  {
    if(GPIO_ReadInputDataBit(KEY_PORT,KEY_PIN))
      GPIO_WriteBit(LED1_PORT,LED1_PIN,RESET);
    else
      GPIO_WriteBit(LED1_PORT,LED1_PIN,SET);
  }
}
关键字:STM8L  探索套件  学习笔记  GPIO  端口操作 引用地址:STM8L探索套件学习笔记-GPIO端口操作(一)

上一篇:STM8L探索套件学习笔记-EXTI外部中断(二)
下一篇:XMEGA128学习笔记11-定时器TC

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

STM32F103单片机学习笔记(2):外部中断
对于STM32的中断首先需要用到的文件是startup_stm32f10x_hd.s和stm32f10x_it.c这两个文件,其中startup_stm32f10x_hd.s是启动文件,stm32f10x_it.c是中断响应函数。对于外部中断,它的过程是外部的IO口监测到电平的变化,触发外部中断,所以它又涉及到3个库文件,stm32f10x_gpio.c、stm32f10x_exti.c和misc.c,misc.c包含中断库,stm32f10x_exti.c是外部的IO口中断,stm32f10x_gpio.c是IO口的配置。还有一个我们上一篇中说的所有的外设都要用到的库文件时钟stm32f10x_rcc.c。 一、启动文件 说
[单片机]
STM32F103单片机<font color='red'>学习</font><font color='red'>笔记</font>(2):外部中断
GPIO做为输出时操作方法--stm32备忘
  这里就不说库函数操作了,因为库函数的本质是操作寄存器。当GPIO做为输出时,无非是输出0或者1。涉及到的寄存器有GPIOx_ODR、GPIO_BSRR、GPIO_BRR.下面分别介绍这三个寄存器的操作方法。   GPIOx_ODR: 端口输出数据寄存器,它的31:16位保留不用,15:0对应x的相应引脚,他只能以16位方式操作。   GPIOx_BSRR:端口位设置/复位寄存器,它的31:16位是清除位(BR15:BR0),用来复位对应的引脚;15:0位是设置位(BS15:BS0),用来设置对应的引脚。无论是BR还是BS,都是1有效,即相应位为0时无效,这样可以保证操作某个端口时对其他端口无影响。   GPIOx_
[单片机]
疯壳MSP430实验教程1.GPIO实验
GPIO硬件介绍 MSP430F5438A单片机属于5系列单片机,该系列的单片机最多可以提供12路数字IO接口,P1~P11以及PJ。大部分接口都有8个管脚,但是有些接口会少于 8 个管脚。可以参考说明文档中关于接口的章节。每个 I/O 管脚都可以独立的设置为输入或者输出方向,并且每个 I/O 接线都可以被独立的读取或者写入。所有接口的寄存器都可以被独立的置位或者清零,就像设置驱动能力一样。 P1和P2接口具中断功能。从P1和P2接口的各个I/O管脚引入的中断可以独立的被使能并且设置为上升沿或者下降沿出发中断。所有的P1接口的I/O管脚的中断都来源于同一个中断向量P1IV,并且P2接口的中断都来源于另外一个中断向量P2IV。在
[单片机]
疯壳MSP430实验教程1.<font color='red'>GPIO</font>实验
TQ2440 学习笔记—— 25、LCD 控制器
LCD 控制器 写程序: 1、打开背光 2、时序设置 3、在FrameBuffer 里写数据(不同的像素,其格式不同) /* * FILE: lcddrv.c * 提供操作LCD控制器、调色板等的底层函数 */ #include stdio.h #include s3c24xx.h #include lcddrv.h #define GPB0_tout0 (2 (0*2)) #define GPB0_out (1 (0*2)) #define GPB1_out (1 (1*2)) #define GPB0_MSK (3 (0*2)) #define GPB1_MSK (3 (1*
[单片机]
TQ2440 <font color='red'>学习</font><font color='red'>笔记</font>—— 25、LCD 控制器
stm32引脚速度GPIO_Speed的区别
一、 GPIO模式配置 1、输入/输出模式(参考stm32手册) 2、GPIO输出模式下,几种速度的区别: (1). GPIO 引脚速度: GPIO_Speed_2MHz (10MHz, 50MHz) ; 又称输出驱动电路的响应速度:(芯片内部在I/O口的输出部分安排了多个响应速度不同的输出驱动电路,用户可以根据自己的需要选择合适的驱动电路,通过选择速度来选择不同的输出驱动模块,达到最佳的噪声控制和降低功耗的目的。) 可理解为: 输出驱动电路的带宽:即一个驱动电路可以不失真地通过信号的最大频率。 (如果一个信号的频率超过了驱动电路的响应速度,就有可能信号失真。失真因素?) 如果信号频率为10MHz,而你配置了2MH
[单片机]
LCD实验学习笔记(五):MMU
内存管理分别页表机制和内存分配机制两块。 页表机制就是管理设备真实物理地址与虚拟地址的动态或静态的映射,基于cpu内部的mmu(内存管理单元)进行。 CP15(协处理器)的C0(缓存)是一级页表,含4096个索引(每索引4字节,共16K)。 每个索引项代表1MB地址空间,4096*1MB=4GB=32位CPU可寻址4GB空间。 4096个索引欺项,对应虚拟地址 。 每个索项引占4字节32位,其 含义为: 00无效,MMU向CPU发出缺页异常; 01粗页表,二级页表是64K或4K页; 10段(section),每段长度1MB; 11细页表,二级页表是1K页。 段模式下,送进MMU的32位虚拟地址被分成两部份, 为段索引, 为段内偏移
[单片机]
STM32F103 GPIO的外部中断的使用例子
STM32的GPIO可以作为中断输入使用,这样增强了实时检测性,可以用于外部按键或是触控等使用。如果使用,其实不难,这里使用标准的固件库,加入外部中断的库文件: 在stm32f10x_conf.h 中,打开 #include stm32f10x_exti.h 这里通过外部触控的方式,点亮或是关闭一个LED灯的例子,熟悉一下STM32F103 系列外部中断的使用。 我这里使用的GPIO为:PC11,头文件的GPIO宏定义为: /**** EXTI Control ****/ void EXTI_GPIO_Init(void); #define RCC_TOUCHOUT RCC_APB2
[单片机]
意法半导体 STM8L 系列超低功耗微控制器量产
微控制器供应商意法半导体(纽约证券交易所代码:STM)宣布STM8L系列超低功耗微控制器正式投产。新系列产品于2009年底发布,以EnergyLite™ 技术为亮点,最大限度降低各种模式的功耗。 超低功耗微控制器符合当前高速增长的能效需求,有助于设计人员延长电池供电产品的寿命,降低智能电表、家用电器等电动设备的能耗。通常的省电技术包括睡眠模式和关断片上闲置模块,意法半导体的EnergyLite技术还可以在工作模式下节省电能,从而帮助设计人员达到“能源之星80 Plus”等能效目标,符合国际高能效电源推广计划以及待机功耗限制,如IEA的“1W节能计划”。 即日起上市的STM8L EnergyLite微控制
[单片机]
意法半导体 <font color='red'>STM8L</font> 系列超低功耗微控制器量产
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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