STM8L库函数修正--GPIO_ReadInputDataBit

发布者:灵感驿站最新更新时间:2019-04-10 来源: eefocus关键字:STM8L  库函数修正  GPIO 手机看文章 扫描二维码
随时随地手机看文章

使用的库: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} BitStatus,;


GPIO_ReadInputDataBit()函数的返回值是将(GPIOx->IDR & (uint8_t)GPIO_Pin)强制转换为BitStatus变量,按理说值只能是0或者1,而实际上高电平脚位可能是0x10,0x20,0x40,0x80这些值。


当(GPIOx->IDR & (uint8_t)GPIO_Pin)的结果是0或1以外的值时,函数的结果表达式的值超出了枚举范围,无法在枚举定义的元素值里找到对应的数据。再检查是否等于SET就会出错。


 


修改后:


BitStatus GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin)

{

  if( (GPIOx->IDR & (uint8_t)GPIO_Pin) ==0)

  {return RESET;}

  else

  {return SET;}

}

关键字:STM8L  库函数修正  GPIO 引用地址:STM8L库函数修正--GPIO_ReadInputDataBit

上一篇:I2C协议---I2C时序图解析
下一篇:MSP430 串口接收指令控制LED亮灭

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

STM32例程详解:GPIO之JTAG_Remap
完整的工程文件夹在这里下载 http://pan.baidu.com/s/1EFgkw KEIL—MDK 4.72a调试通过 //头文件包含 ------------------------------------------------------------------*/ #include stm32f10x.h #include stm32_eval.h //译者注:意法半导体公司为其开发板上模块所写的头文件 GPIO_InitTypeDef GPIO_InitStructure; //定义GPIO初始化结构体,其原型由GPIO_InitTypeDef确定 //私有 函数原型 ----------------------
[单片机]
飞思卡尔16位单片机(三)——GPIO输出功能测试
一、GPIO介绍 GPIO是单片机最常用的功能,XEP100单片机的并行I/O的资源很丰富,XEP100的IO有PORTA、PORTB、PORTH、PORTJ、PORTM、PORTP、PORTS、PORTT、PORTK和PORTE共10组IO。这些I/O口除了具有通用I/O功能外,还分别具有专用I/O的功能。可以根据需要进行设置,专用I/O功能启用后,通用I/O功能自动关闭。 在使用单片机的并行I/O时要进行一些设置,主要的设置如下所示: 1功能设置 每个I/O子系统都有一个功能设置寄存器,其中的几个位用于部分或者全部引脚的功能设定,设定为专用功能后,方向设置功能可能自然禁止,但上拉、下拉及降功率驱动功能一般仍然有效,具体
[单片机]
飞思卡尔16位单片机(三)——<font color='red'>GPIO</font>输出功能测试
stm32mp1 Cortex M4开发篇4:GPIO外部中断详解
写在前面: 本文章为《ARM Cortex-M4裸机开发篇》系列中的一篇,,全系列总计14篇。笔者使用的开发平台为华清远见FS-MP1A开发板(STM32MP157开发板),Cortex-M4裸机开发篇除了讲M4裸机开发外,还会讲解通过M4控制资源扩展板上的各种传感器执行器模块(包括空气温湿度传感器、LED灯、数码管、蜂鸣器、震动马达、按键中断、风扇等),本篇是M4控制资源扩展板中的一篇。 资源扩展板是FS-MP1A开发板的扩展模块,主要包含了10余种助主流传感器、执行器件、总线控制器件,非常方便项目扩展用。可拓展开发智慧家庭、智能医疗、智能安防、工业控制、图像识别、环境检测等方向的10个左右综合项目,华清远见开发板也将配套提
[单片机]
stm32mp1 Cortex M4开发篇4:<font color='red'>GPIO</font>外部中断详解
stm32—GPIO操作(库函数)
GPIO的8种方式 1、浮空输入GPIO_IN_FLOATING ——浮空输入,可以做KEY识别,RX1 2、带上拉输入GPIO_IPU——IO内部上拉电阻输入 3、带下拉输入GPIO_IPD—— IO内部下拉电阻输入 4、模拟输入GPIO_AIN ——应用ADC模拟输入,或者低功耗下省电 5、开漏输出GPIO_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51的IO双向功能 6、推挽输出G
[单片机]
STM32外设之GPIO
一、GPIO是什么? 全称:General-purpose input/output(通用型输入输出) 操作要点: 1. 使能 GPIO 端口时钟。 2. 初始化 GPIO 目标引脚为推挽输出模式。 3. 编写简单测试程序,控制 GPIO 引脚输出高、低电平。 二、使用步骤 1.GPIO功能与模式 1.输入浮空 :输入模式施密特触发器打开及GPIO端口内部上下拉开关打开, 并且状态不确定。 2.输入上拉:输入模式施密特触发器打开及GPIO端口内部上拉开关关闭,默认为高电平。 3.输入下拉 :输入模式施密特触发器打开及GPIO端口内部下拉开关关闭,默认为低电平。 4.模拟输入 : 模拟输入施密特触
[单片机]
STM32外设之<font color='red'>GPIO</font>
STM8S学习GPIO操作
STM8S的GPIO主要功能: ● 端口的各个位可以被单独配置 ● 可选择的输入模式:浮动输入和带上拉输入 ● 可选择的输出模式:推挽式输出和开漏输出 ● 数据输入和输出采用独立的寄存器 ● 外部中断可以单独使能和关闭 ● 输出摆率控制用以减少EMC噪声 ● 片上外设的I/O功能复用 ● 当作为模拟输入时可以关闭输入施密特触发器来降低功耗 ● 在数据输出锁存时支持读-修改-写 ● 输入兼容 5V电压 ● I/O口工作电压范围为1.6 V 到V DDIOmax 每个端口都分配有一个输出数据寄存器,一个输入引脚寄存器,一个数据方向寄存器,一个选择寄存器,和一个配置寄存器。一个I/O口工作在输入还是输出是取决于该口的数据方向寄存器的状态
[单片机]
STM8S学习<font color='red'>GPIO</font>操作
STM32自学笔记GPIO寄存器
GPIO寄存器一览 以下图片全部摘自STM32中文参考手册 GPIOx- CRL(x=A…E) 这个寄存器主要是设置GPIO的低8位(0~7)端口的配置 MODE 用来设置端口输出的速度 (在输入模式下不需要配置,仅在输出模式下需要配置) CNF 用来设置输入模式或者输出模式 例如 设置PA0为推挽输出速度为50MHz GPIOA- CRL&=0XFFFFFFF0;//PA0配置清零 GPIOA- CRL|=0X00000003;//PA0输出 速度50MHz 设置PA0为上下拉输入(默认下拉) GPIOA- CRL&=0XFFFFFFF0;//PA0配置清零 GPIOA- CRL|=0X00000008
[单片机]
STM32自学笔记<font color='red'>GPIO</font>寄存器
STM32的GPIO使用的函数剖析
该文是自己学习了一段STM32后所写,是对STM32使用固件库编程最简单的一段程序,是对固件库函数的一部分进行解析。如有错误之处请指正,不胜感激。 一、 GPIO_Init函数解析 1 1、参数GPIO_TypeDef 1 2、参数GPIO_InitStruct 2 3、函数代码详解 4 4、备注 6 一、GPIO_Init函数解析 首先来看一下GPIO_Init函数的原型void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)。这个函数的实现是在Stm32f10x_gpio.c文件中,若要使用该函数在相应的应用程序的前
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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