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

发布者:那是一条路都最新更新时间:2020-08-31 来源: 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端口操作(一)

上一篇:JTAG/SWD/ISP/SWIM详解单片机的四种烧写方式
下一篇:STM8L101F3P6 TIM4 实现呼吸灯效果(1)

推荐阅读最新更新时间:2024-11-09 19:44

STM8L CPU唯一ID码 (Unique Device ID)
产品唯一的身份标识(Unique Device ID)非常适合: ● 用来作为序列号serial numbers (例如 USB字符序列号或者其他的终端应用) ● 用来激活带安全机制的自举过程 ● 用来作为密码 在编写闪存时,将此唯一标识与软件加解密算法结合使用, 提高代码在闪存存储器内的安全性。96位的产品唯一身份标识所提供的参考号码对任意一个STM8L 微控制器,在任何情况下都是唯一的。用户在何种情况下,都不能修改这个身份标识。 这个96位的产品唯一身份标识,按照用户不同的用法,可以以字节(8 位)为单位读取。96 位的独特ID位于地址 0x4926 ~ 0x4931的系统存储区.
[单片机]
<font color='red'>STM8L</font> CPU唯一ID码 (Unique Device ID)
STM32_GPIO之点亮LED实验
/* 名称:STM32_GPIO之点亮LED 说明:对于STM32来说,其对LED的操作基本上也是操作对应的IO口。不过, 和51不同的是,STM32为了兼顾各个设备,其配有时钟树,所以在使用对应 设备的时候,需要实现配置好时钟树(库函数中配置了),并开启相应的设备 时钟(这里是对应的GPIO端口)。 其次,STM32的IO端口比51单片机要复杂的多,要配置很多东西(如工作模式、工作速度等等)。对于51单片机来说,其IO口的使用(无论是输入还是输出),直接操作对应的寄存器就可以。然后,对于GPIO口的操作,一般来说对于STM32,并不是直接操作对应的寄存器。而是通过已有的固件库,以库函数的形式来写入、读出、配置等。
[单片机]
STM32/STM8L/STM8S系列之一、流水灯
一、STM32F103点亮LED 1、电路图: 2、代码: //FUNCTION:LED初始化 //PARA :无 //RETURN :无 void LED_INIT(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOB , ENABLE); //使能AFIO和GPIOB端口 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);//关闭PB3 PB4的复用功能,使能通用IO功能
[单片机]
STM32/<font color='red'>STM8L</font>/STM8S系列之一、流水灯
Freescale MC9S12G128 GPIO
MC9S12G-Family Block Diagram 不同芯片封装端口: Port J相关寄存器 The PIM includes these distinctive registers: • Data registers and data direction registers for ports A, B, C, D, E, T, S, M, P, J and AD when used as general-purpose I/O • Control registers to enable/disable pull devices and select pullups/pulldowns on po
[单片机]
Freescale MC9S12G128 <font color='red'>GPIO</font>
STM32F051学习- GPIO
stm32F051 GPIO 有 电源引脚(三根),复位引脚(两根boot0,boot1,配置选择三种不同的启动模式,从主闪存存储器,系统存储器或者内置SRAM启动,代码可以放到三个不同的地方),GPIOF0~1(两根,可用于外接晶振,本例中外接8MHz的HSE晶振),GPIOA0~15(16根),GPIOB1~7(8根)。 引脚顺序:在芯片上四个角的某一个角上会有标志,从标志位置开始逆时针旋转,就是引脚的标号顺序。 除复位引脚和启动引脚之外,其它的GPIOA,B,F都是通用引脚,用于与外界沟通。 STM32F051-GPIO常用寄存器 4个32位配置寄存器 GPIOx_MODER, GPIOx_OTY
[单片机]
STM32F051学习- <font color='red'>GPIO</font>
MSP432--GPIO IAR环境
GPIO 1.特点:众多的独立可编程I/O口 任意端口的输入输出组合 中断 独立的输入输出寄存器 独立可配置的上拉下拉寄存器 2.分布:总共有P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 PJ P1-P10共78个I/O,PJ有6个I/O P1.0,P1.4,P1.5,P3.0,P3.4,P3.5,P6.6,P6.7自带硬件滤波,消抖 P1.2-- BSLRXD P1.3-- BSLTXD SPI引脚:P1.4-- BSLSTE P1.5-- BSLCLK P1.6-- BSLSIMO P1.7-- BSLSOMI IIC引脚:P3.6-- BSLSDA P3.7-- BSLSCL 总共100引脚 ZXH封装
[单片机]
stm32中gpio八种输出模式有什么不同
输出模式只有4种哦,另外4种是输入模式,这个问题很常见: 下面是引用文字: (1) 浮空输入_IN_FLOATING ——浮空输入,可以做KEY识别,RX1 (2)带上拉输入_IPU——IO内部上拉电阻输入 (3)带下拉输入_IPD—— IO内部下拉电阻输入 (4) 模拟输入_AIN ——应用ADC模拟输入,或者低功耗下省电 (5)开漏输出_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51的IO双向功能 (6)
[单片机]
STM8L库函数修正--GPIO_ReadInputDataBit
使用的库:STM8L15x_StdPeriph_Driver 库函数:GPIO_ReadInputDataBit 函数原型: BitStatus GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin) { return ((BitStatus)(GPIOx- IDR & (uint8_t)GPIO_Pin)); } 作用:读取GPIO脚的电平,被读取的IO口为低电平时返回RESET,高电平返回SET。 SET\RESET的定义: typedef enum {RESET = 0, SET = !RESET} B
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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