物联网Lora模块从入门到精通(四)对某些端口的初始化

这篇具有很好参考价值的文章主要介绍了物联网Lora模块从入门到精通(四)对某些端口的初始化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

        由于程序设计开发具有的不确定性,我们常常需要初始化某些特定的引脚,并读取引脚电平状态或向引脚输出高低电平。

二、代码实现

        快速找到端口的初始化语句:

        首先,找到board.c文件,在下图的位置,我们可以看到关于LED灯的端口的初始化语句。

物联网Lora模块从入门到精通(四)对某些端口的初始化

        通过 Go Definition功能或者直接找到gpio.c文件,可以看到具体的实现方法:

/*
 / _____)             _              | |
( (____  _____ ____ _| |_ _____  ____| |__
 \____ \| ___ |    (_   _) ___ |/ ___)  _ \
 _____) ) ____| | | || |_| ____( (___| | | |
(______/|_____)_|_|_| \__)_____)\____)_| |_|
    (C)2013 Semtech

Description: Generic GPIO driver implementation

Comment: Relies on the specific board GPIO implementation as well as on
         IO expander driver implementation if one is available on the target
         board.

License: Revised BSD License, see LICENSE.TXT file include in the project

Maintainer: Miguel Luis and Gregory Cristian
*/
#include "board.h"

#include "gpio-board.h"


void GpioInit( Gpio_t *obj, PinNames pin, PinModes mode,  PinConfigs config, PinTypes type, uint32_t value )
{
	GpioMcuInit( obj, pin, mode, config, type, value );
}

void GpioSetInterrupt( Gpio_t *obj, IrqModes irqMode, IrqPriorities irqPriority, GpioIrqHandler *irqHandler )
{
    GpioMcuSetInterrupt( obj, irqMode, irqPriority, irqHandler );
}

void GpioRemoveInterrupt( Gpio_t *obj )
{
    GpioMcuRemoveInterrupt( obj );
}

void GpioWrite( Gpio_t *obj, uint32_t value )
{
    GpioMcuWrite( obj, value );
}

void GpioToggle( Gpio_t *obj )
{
    GpioMcuToggle( obj );
}

uint32_t GpioRead( Gpio_t *obj )
{
    return GpioMcuRead( obj );
}

        本次,我们主要使用的方法为:GpioInit()

        该方法有五个参数,我们依次展开来看。

        参数一:Gpio_t *obj :我们在使用时需要先创建一个Gpio_t类型的变量,并在初始化时传入,方便我们后面去对其操作。

        参数二:PinNames pin:此处我们填写需要操作的端口,例如PB_2。

        参数三:PinModes mode:此处我们可以填常见的两种,即PIN_INPUT(输入模式),PIN_OUTPUT(输出模式),而PIN_ALTERNATE_FCT与PIN_ANALOGIC暂时不需要我们关注。

        参数四:PinConfigs config:此处我们一般写PIN_PUSH_PULL(推挽)即可。

        参数五:PinTypes type:此处我们根据需要选择PIN_NO_PULL,PIN_PULL_UP,PIN_PULL_DOWN即可。

        参数六:填0即可。

        代码示例:

        下面展示读取PB_2电平,低电平点亮LED1的操作:

物联网Lora模块从入门到精通(四)对某些端口的初始化

 文章来源地址https://www.toymoban.com/news/detail-479114.html

Gpio_t Device;
int main( void )
{
    Init();
		GpioInit(&Device,PB_2,PIN_INPUT,PIN_PUSH_PULL,PIN_PULL_UP,0);
    while( 1 )
    {
				if(GpioRead(&Device)==0)
					GpioWrite(&Led1,0);
				else
					GpioWrite(&Led1,1);
    }
}

到了这里,关于物联网Lora模块从入门到精通(四)对某些端口的初始化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包