单片机
返回首页

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

2015-12-21 来源:eefocus

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);
  }
}
进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 家用电源无载自动断电装置的设计与制作

  • PIC单片机控制的遥控防盗报警器电路

  • 短波AM发射器电路设计图

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 如何构建一个触摸传感器电路

  • 基于TDA2003的简单低功耗汽车立体声放大器电路

    相关电子头条文章