GPIO常用操作

摘要:
GPIO输出过程:启用时钟--˃初始化GPIO--˃输出高电平和低电平intGPIO_ OUT_ INIT(void){GPIO_INIT_TypeDefg;RCC_APB2PeriphClockCmd。

GPIO输出流程: 使能时钟-->初始化GPIO-->输出高低电平

int GPIO_OUT_INIT(void)
{
    GPIO_InitTypeDef g;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE,ENABLE);

    g.GPIO_Pin=GPIO_Pin_5;
    g.GPIO_Speed=GPIO_Speed_50MHz;
    g.GPIO_Mode=GPIO_Mode_Out_PP;

    GPIO_Init(GPIOB,&g);
    GPIO_SetBits(GPIOB,GPIO_Pin_5);
    
    GPIO_Init(GPIOE,&g);
    GPIO_ResetBits(GPIOE,GPIO_Pin_5);
}

GPIO输入流程:使能时钟-->初始化GPIO-->读入高低电平

void GPIO_IN_INIT(void)
{
    GPIO_InitTypeDef g;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);
    g.GPIO_Pin=GPIO_Pin_4;
    g.GPIO_Mode=GPIO_Mode_IPU;
    GPIO_Init(GPIOE,&g);
}

示例1:从PE4读入高低电平并赋给PB5的三种方法:

     GPIO_WriteBit(GPIOB,GPIO_Pin_5,(BitAction)GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4));

     GPIO_WriteBit(GPIOB,GPIO_Pin_5,(BitAction)GPIOE->IDR&GPIO_Pin_4);

    if(GPIOE->IDR&GPIO_Pin_4)
        GPIOB->BSRR=GPIO_Pin_5;
    else 
          GPIOB->BRR=GPIO_Pin_5;

免责声明:文章转载自《GPIO常用操作》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Linux中VSFTP的配置C# api调用,上窗口在最上面,模拟键盘下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

LINUX --- echo修改GPIO状态

GPIO sysfs InterfaceThe GPIO sysfs interface allows users to manipulate any GPIO from userspace (also known as programmable flags). Since it uses gpiolib, it is able to dynamicall...

树莓派上传数据错误一例

首先是源码: 1 #-*- utf-8 -*- 2 #env !/usr/bin/python 3 4 importRPi.GPIO as GPIO 5 importtime 6 importjson 7 importdatetime 8 importrequests 9 10 requests.adapters.DEFAULT_RETRIES = 5...

基于335X的UBOOT网口驱动分析

基于335X的UBOOT网口驱动分析     一、软硬件平台资料 1、  开发板:创龙AM3359核心板,网口采用RMII形式 2、  UBOOT版本:U-Boot-2016.05,采用FDT和DM。 参考链接: https://blog.csdn.net/hahachenchen789/article/details/53339181   二、网口相关代...

Linux设备树语法详解

Linux内核从3.x开始引入设备树的概念,用于实现驱动代码与设备信息相分离。在设备树出现以前,所有关于设备的具体信息都要写在驱动里,一旦外围设备变化,驱动代码就要重写。引入了设备树之后,驱动代码只负责处理驱动的逻辑,而关于设备的具体信息存放到设备树文件中,这样,如果只是硬件接口信息的变化而没有驱动逻辑的变化,驱动开发者只需要修改设备树文件信息,不需要改写...

Shell脚本学习笔记3——控制GPIO

在我参与维护的一个项目中,硬件上有一处设计失误:本应该短接到地的一个GPIO没有短接到地,导致某一个功能不能实现,正式出货的时候会进行改版。 但目前还处于测试阶段,只需要先把这个功能实现出来,方案有两个,一是硬件上飞线去实现,而是通过软件去拉低这个GPIO。鉴于硬件飞线比较麻烦,所以我们选择软件上写一个脚本来实现。 我们可以先通过命令行来控制某一个GPIO...

(stm32f103学习总结)—ADC模数转换实验

一、STM32F1 ADC介绍  TM32F103 系列一般都有 3 个 ADC,这些 ADC 可以独立使用,也可 以使用双重(提高采样率)。STM32F1 的 ADC 是 12 位逐次 逼近型的模拟数字转换器。它具有多达 18个复用通道,可测量来自16 个外部源、2 个内部源信号。 这些通道的 A/D 转换可 以单次、连续、扫描或间断模式执行。ADC 的...