gpio 的配置

1.时钟使能

B引脚RCC时钟脉冲启动。|(或)表示只要第三个为1就行。

也可以写为RCC_APB2ENR  | = 0X0008;

2.配置GPIO的输出模式以及速度

3

.

如果是 0号引脚:GPIO_ODR = 1;

如果是 1号引脚:GPIO_ODR = 2;

如果是 2号引脚:GPIO_ODR = 4;

二.完整代码

int main()

{

  /*开启GPIOB时钟,使用外设时都要先开启它的时钟*/

  RCC_APB2ENR    | = 1<<3;

  /* 配置PBO口为通用推挽输出模式,速率为2M/S */

  GPIOB_CRL = (0<<2) | (2<<0);

  /*  置为(SET)时等同于GPIO_BSRR = 1*/

  GPIO_ODR = 1;

}

三.输入

例如按钮接在Pc13,

int main()

{

  

  /*开启GPIOB时钟,使用外设时都要先开启它的时钟*/

  RCC_APB2ENR    | = 1<<4;//接在Pc口

  /* 配置PBO口为通用推挽输出模式,速率为2M/S */

  GPIOB_CRL = (0<<2) | (2<<0);//输入没有速率

  /*  置为(SET)时等同于GPIO_BSRR = 1*/

  GPIO_ODR = 1;

}

时间: 2024-08-27 23:23:02

gpio 的配置的相关文章

【STM】GPIO引脚配置方式

配置方式: 普通 GPIO 输入:根据需要配置该引脚为浮空输入.带弱上拉输入或带弱下拉输入,同时不要使能该引脚对应的所有复用功能模块 普通 GPIO 输出:根据需要配置该引脚为推挽输出或开漏输出,同时不要使能该引脚对应的所有复用功能模块 普通模拟输入:配置该引脚为模拟输入模式,同时不要使能该引脚对应的所有复用功能模块 内置外设的输入:根据需要配置该引脚为浮空输入. 带弱上拉输入或带弱下拉输入,同时使能该引脚对应的某个复用功能模块 内置外设的输出:根据需要配置该引脚为复用推挽输出或复用开漏输出,同

2、GPIO配置

1.AD引脚只能接3.3V,除了AD的引脚,其余都可以接5.5V 2.输入模式: (1)输入浮空模式,无上拉电阻 (2)输入上拉模式,有上拉电阻 (3)输入下拉模式,有下拉电阻 (4)模拟输入模式,模拟输入 3.输出模式: (1)开漏输出模式,上拉电阻,返回1,下拉电阻,返回0: (2)开漏复用输出模式 (3)推挽输出模式,输入1则输出1,输入0则输出0 (4)推挽复用输出模式 4.GPIO寄存器配置 (1)两个32位配置寄存器(GPIOx_CRL ,GPIOx_CRH) (2) 两个32位数据

stm32寄存器版学习笔记01 GPIO口的配置(LED、按键)

STM32的I/O口可以由软件配置成如下8种模式:输入浮空.输入上拉.输入下拉.模拟输入.开漏输出.推挽输出.推挽式复用功能及开漏复用功能.每个I/O口由7个寄存器来控制:配置模式的端口配置寄存器CRL和CRH(模式.速度):数据寄存器IDR和ODR:置位/复位寄存器BSRR:复位寄存器BRR:锁存寄存器LCKR. I/O口模式: GPIO的8种模式 通用输出 推挽输出(Puch-Pull) 可以输出高.低电平,连接数字器件   开漏输出(Open-Drain) 开漏引脚不连接外部的上拉电阻时,

linux内核关于uart2配置为RTS引脚时,串口无法使用的问题

前言: 在linux中,当gpio被配置为串口或者其他作用功能时,是无法再文件系统中再将该gpio进行导出(echo xx > /sys/class/gpio/export)的,内核不允许,因为你的该引脚已经作为其他功能使用. 在对linux内核进行配置时,make menuconfig 配置串口uart2为带有RTS引脚的情况.然后make编译内核,结果运行到板子上,在文件系统下确实能够导出该串口对应的gpio引脚的,这肯定是不正确的,经过测试,确实发现,此时的串口确实无法工作,像是失去了串口

Linux GPIO操作分析 - Exynos 5260

送给从STM32库或者其他单片机爬过来的熊孩纸 操作GPIO还是这个顺序: 1:开时钟(linux不用管) 2:设置属性 3:设置方向 4:看是否需要设置上下拉 我这个版本是exynos5260平台的,常规IO操作方式如下 通常在配置一个GPIO口时,首先通过gpio_request函数申请GPIO口,再通过s3c_gpio_cfgpin.s3c_gpio_setpull.gpio_set_value函数配置GPIO口,在不用时通过gpio_free函数释放GPIO口. 相关源码路径: /* k

Linux内核驱动之GPIO子系统(一)GPIO的使用

转自:http://blog.csdn.net/mirkerson/article/details/8464290 一 概述 Linux内核中gpio是最简单,最常用的资源(和 interrupt ,dma,timer一样)驱动程序,应用程序都能够通过相应的接口使用gpio,gpio使用0-MAX_INT之间的整数标识,不能使用负数,gpio与硬件体系密切相关的,不过linux有一个框架处理gpio,能够使用统一的接口来操作gpio.在讲gpio核心(gpiolib.c)之前先来看看gpio是怎

树莓派GPIO口驱动编写

一.wiringpi写法 #include <wiringPi.h> #include <stdlib.h> int main(int argc,char *argv[]) { if(argc<2) return -1; if(argc==2) { wiringPiSetup(); pinMode(0, OUTPUT); if(atoi(argv[1]) == 1) digitalWrite(0, HIGH); else if(atoi(argv[1]) == 0) digi

imx6用文件io操作gpio

具体请参考: http://blog.csdn.net/u014213012/article/details/53140781 这里要注意的是: 要让linux支持文件io方式操作gpio,首先驱动必须得支持,也就是说设备树上必须先配置好gpio模式,然后参照以上链接去实现gpio操作 这里举例来说:hud项目中(imx6dl平台),有一个蓝牙电源的使能受GPIO1_IO30的控制,所以我们必须得在设备树上配置这个pad为GPIO模式 1.配置gpio模式 现在需要在设备树上配置GPIO1_IO

展讯7731平台驱动调试总结-驱动配置部分

转载至:http://blog.csdn.net/bmw7bmw7/article/details/46126223 展讯7731平台驱动调试总结-驱动配置部分 1. 关键配置文件路径 1). 项目板级配置:idh.code/device/sprd/scx35_sp7731geaplus_pad_qhd/文件夹内各文件 ⑴.BoardConfig.mk---板级宏配置文件.包括设置该板(项目)所使用的uboot/kerenl全局配置宏文件,摄像头接口类型.分辨率等参数,所使用的重力加速度.光线传