GPIO的入门资料
GPIO参数配置

GPIO参数配置GPIO(General Purpose Input/Output)引脚是通用输入/输出引脚,可以用于连接和控制各种外部设备。
在树莓派等嵌入式系统中,GPIO引脚可以通过软件的方式进行配置和控制。
2.输入/输出模式:GPIO引脚可以被配置为输入模式或输出模式。
输入模式表示引脚可以接收外部设备的信号,输出模式表示引脚可以输出电信号给外部设备。
在配置GPIO引脚时,需要明确所需的输入/输出模式。
3.电源电压:GPIO引脚可以根据外部设备的要求配置相应的电源电压。
一般来说,引脚提供3.3V或5V的电压供应。
4.信号电平:GPIO引脚的信号电平指的是引脚的电压状态,通常是高电平(1)或低电平(0)。
在配置GPIO引脚时,可以设置引脚的初始电平状态,默认可以是高电平或低电平。
5.上拉/下拉电阻:GPIO引脚可以通过上拉电阻或下拉电阻来确定引脚的默认电平状态。
上拉电阻将引脚连接到正电压,下拉电阻将引脚连接到地。
在配置GPIO引脚时,可以启用或禁用上拉/下拉电阻。
在树莓派的Linux系统中,GPIO的参数配置通过GPIO库函数来实现。
以下是一个基本的GPIO参数配置的示例代码:```c#include <stdio.h>#include <wiringPi.h>int maiint gpioPin = 18;int mode = OUTPUT; // 输出模式int signalLevel = HIGH; // 高电平int pud = PUD_OFF; // 禁用上拉/下拉电阻if (wiringPiSetupGpio( == -1)return 1;}pinMode(gpioPin, mode); // 设置GPIO引脚的模式digitalWrite(gpioPin, signalLevel); // 设置GPIO引脚的信号电平pullUpDnControl(gpioPin, pud); // 设置GPIO引脚的上拉/下拉电阻return 0;```以上代码通过wiringPi库函数实现了GPIO参数配置。
gpio详细解读 -回复

gpio详细解读-回复GPIO详细解读GPIO,全称为通用输入输出接口(General Purpose Input/Output),是一种在计算机系统中用于与外部设备进行数字通信的接口。
它允许计算机与各种不同类型的外设进行通信,并且可以通过软件控制这些外设的输入和输出。
在本文中,我将逐步回答关于GPIO的各种问题,以帮助读者全面理解和使用GPIO接口。
一、GPIO概述GPIO是计算机系统与外部设备之间的桥梁,它通过引脚(pin)与外设相连,使用数字信号进行通信。
每个引脚可以配置为输入或输出模式,以实现不同的功能。
GPIO接口的灵活性和通用性使其成为计算机系统的核心部分。
二、GPIO引脚GPIO引脚是与外部设备相连的物理引脚,它们通常以数字方式编号,并且可以通过引脚号来识别和访问。
常见的计算机系统通常具有多个GPIO引脚,可以通过软件将它们配置为输入或输出模式。
三、GPIO模式GPIO引脚可以配置为输入或输出模式,取决于与之相连的外部设备类型和应用需求。
在输入模式下,GPIO引脚可以接收来自外设的信号,并将其传递到计算机系统;而在输出模式下,GPIO引脚可以发送计算机系统生成的信号到外设。
四、GPIO寄存器GPIO寄存器是计算机系统中用于配置和控制GPIO引脚的寄存器。
通过读写这些寄存器的值,可以设置GPIO引脚的工作模式、电平状态和其他参数。
使用GPIO寄存器可以实现对GPIO接口的灵活编程控制。
五、GPIO驱动程序为了简化对GPIO的操作,操作系统通常提供了GPIO驱动程序。
通过调用这些驱动程序提供的接口函数,可以更方便地实现对GPIO引脚的配置和控制。
驱动程序隐藏了底层硬件细节,使开发人员能够更专注于应用程序的开发。
六、GPIO使用示例以下是一个简单的GPIO使用示例,以帮助读者更好地理解GPIO接口的工作原理。
1. 引脚配置:首先,需要选择一个GPIO引脚,并将其配置为输入或输出模式。
这可以通过操作GPIO寄存器来实现。
+STM32_GPIO_的一些入门资料

对通用输入输出GPIO的深入理解二.GPIO的各种模式GPIO管脚可以被配置为多种工作模式,其中有3种比较常用:高阻输入、推挽输出、开漏输出1. 高阻输入(Input)图1.1 GPIO高阻输入模式结构示意图为减少信息传输线的数目,大多数计算机中的信息传输线采用总线形式,即凡要传输的同类信息都在同一组传输线,且信息是分时传送的。
在计算机中一般有三组总线,即数据总线、地址总线和控制总线。
为防止信息相互干扰,要求凡挂到总线上的寄存器或存储器等,它的输入输出端不仅能呈现0、1两个信息状态,而且还应能呈现第三个状态----高阻抗状态,即此时好像它们的输出被开关断开,对总线状态不起作用,此时总线可由其他器件占用。
三态缓冲器即可实现上述功能,它除具有输入输出端之外,还有一控制端。
如图1.1所示,为GPIO管脚在高阻输入模式下的等效结构示意图。
这是一个管脚的情况,其它管脚的结构也是同样的。
输入模式的结构比较简单,就是一个带有施密特触发输入(Schmitt-triggered input)的三态缓冲器(U1),并具有很高的输入等效阻抗。
施密特触发输入的作用是能将缓慢变化的或者是畸变的输入脉冲信号整形成比较理想的矩形脉冲信号。
执行GPIO管脚读操作时,在读脉冲(Read Pulse)的作用下会把管脚(Pin)的当前电平状态读到内部总线上(Internal Bus)。
在不执行读操作时,外部管脚与内部总线之间是隔离的。
2. 推挽输出(Output)图1.2 GPIO推挽输出模式结构示意图推挽输出原理:在功率放大器电路中大量采用推挽放大器电路,这种电路中用两只三极管构成一级放大器电路,两只三极管分别放大输入信号的正半周和负半周,即用一只三极管放大信号的正半周,用另一只三极管放大信号的负半周,两只三极管输出的半周信号在放大器负载上合并后得到一个完整周期的输出信号。
推挽放大器电路中,一只三极管工作在导通、放大状态时,另一只三极管处于截止状态,当输入信号变化到另一个半周后,原先导通、放大的三极管进入截止,而原先截止的三极管进入导通、放大状态,两只三极管在不断地交替导通放大和截止变化,所以称为推挽放大器()。
gpio 手册祥细解

gpio手册祥细解
GPIO(General-Purpose Input/Output)是通用输入/输出接口的缩写,它是微控制器芯片上常见的接口之一。
GPIO接口可以用于控制外部设备、读取外部设备的状态或者实现与其他设备的通信。
在微控制器中,GPIO接口通常由多个寄存器组成,每个寄存器控制一个特定的GPIO引脚。
每个GPIO引脚都可以被配置为输入或输出模式,并且可以设置不同的工作模式和触发方式。
GPIO接口的主要寄存器包括:
1.端口配置寄存器(GPIOx_CRL/CRH):用于配置GPIO 引脚的工作模式和触发方式。
2.端口输入数据寄存器(GPIOx_IDR):用于读取GPIO 引脚的输入状态。
3.端口输出数据寄存器(GPIOx_ODR):用于设置GPIO 引脚的输出状态。
4.端口位清除寄存器(GPIOx_BRR):用于清除指定的GPIO位。
5.端口位设置/清除寄存器(GPIOx_BSRR):用于设置或清除指定的GPIO位。
6.端口配置锁定寄存器(GPIOx_LCKR):用于锁定GPIO 引脚的配置寄存器,防止意外修改。
在使用GPIO接口时,首先需要配置GPIO引脚的工作模式和触发方式,然后可以通过读取或设置端口输入/输出数据寄存器来控制外部设备或读取外部设备的状态。
同时,也可以使用位清除、位设置/清除等操作来控制特定的GPIO位。
需要注意的是,不同的微控制器可能具有不同的GPIO接口和寄存器配置,因此在使用时需要参考具体的微控制器手册或数据手册进行操作。
第五章 GPIO

控制的引脚
• GPIO相关寄存器描述
out in IOxDIR IOxCLR IOxSET 1 0
PINSELx
IOxPIN
IOxSET
通用名称 FIOPIN FIOSET
描述
out
访问类型
1 0 只读
复位值 NA 0x00000000
GPIO引脚值寄存器,不管方向模式如何,引脚 in 的当前状态都可以从该寄存器中读出
• GPIO应用示例——输出多位数据至IO口
在需要将多位数据同时输出到某几个IO口线时,通常使用 IOxSET和IOxCLR来实现,在某些情况下也可以使用IOxPIN寄存 器实现。后者可以在多个IO口上直接输出0和1电平。
本例将8位无符号整形变量Data的值输出到P0.0~P0.7。 使用IOxSET和IOxCLR实现:
GPIO特性描述|通用输入输出
LPC1700系列Cortex-M3有5组GPIO,多达70个通用I/O 管脚(100管脚封装); 所有GPIO寄存器位于AHB总线上,可以进行高性能的 CPU快速访问,支持Cortex-M3位带操作; 可配置为上拉/下拉电阻、开漏和中继模式; GPIO允许进行DMA数据操作。
引脚设置为输出方式时,输出状态由IOxSET和
Байду номын сангаас
IOxCLR中最后操作的寄存器决定;
大部分GPIO输出为推挽方式(个别引脚为开漏输
出),正常拉出/灌入电流均为4mA(短时间极限 值40mA);
复位后默认所有GPIO为输入模式。
• GPIO应用示例——设置P0.0输出高电平
IO0SET 1 0 IO0CLR
out in
P0.0
IO0DIR
PINSEL0
gpio读写操作

gpio读写操作GPIO(General Purpose Input/Output)是一种通用输入输出接口,广泛应用于各种嵌入式系统,如微控制器、树莓派、Arduino等。
GPIO操作主要用于与外部硬件设备进行交互,包括读取传感器数据、控制执行器等。
本文将介绍GPIO的基本概念、读写操作方法以及应用实例。
一、GPIO基础GPIO通常通过特定的引脚与外部设备进行通信。
这些引脚可以设置为输入模式(从外部设备读取数据)或输出模式(向外部设备发送数据)。
GPIO通常被用来驱动LED灯、蜂鸣器、继电器等简单硬件设备。
此外,GPIO还常常用于控制微控制器或其他硬件的外设。
1. 初始化GPIO在进行GPIO读写操作前,需要先进行初始化。
具体来说,需要配置GPIO引脚的电气特性,如高低电平、上拉/下拉电阻等。
初始化通常在程序启动时进行。
2. 读取GPIO状态读取GPIO状态是指从GPIO引脚读取当前状态,即判断该引脚是高电平还是低电平。
可以通过查询引脚的值或者使用取反操作来获取状态。
3. 设置GPIO值设置GPIO值是指向GPIO引脚写入数据,以控制外部设备的动作。
通常使用输出操作来完成。
需要注意的是,不同的硬件平台可能具有不同的数据类型和寄存器,需要根据具体的硬件平台进行设置。
4. 配置GPIO为输入模式将GPIO配置为输入模式是指将该引脚设置为从外部设备读取数据。
当引脚接收到外部信号时,会自动将其状态存储起来,以便后续读取。
在输入模式下,通常需要配置适当的上拉或下拉电阻以避免悬空。
三、应用实例以下是一个简单的应用实例,演示如何使用树莓派和Python编程语言进行GPIO读写操作:1. 初始化GPIO在Python中,可以使用RPi.GPIO模块来操作树莓派的GPIO引脚。
首先,需要导入该模块并使用setup()函数初始化GPIO。
例如:RPi.GPIO.setmode(RPi.GPIO.BOARD) # 设置模式为板载模式RPi.GPIO.setup(12, RPi.GPIO.OUT) # 将引脚12设置为输出模式2. 读取GPIO状态可以使用input()函数来读取GPIO的状态。
gpio的基本使用方法
gpio的基本使用方法GPIO,即通用输入输出引脚,是一种通用的数字信号输入输出接口,它允许我们将数字信号发送到其他设备,或从其他设备接收数字信号,并使用它们进行控制和通信。
在树莓派等嵌入式设备的开发工作中,GPIO是非常重要的一个组成部分,使用方法也十分简单。
一、初始化GPIO要使用GPIO,我们首先需要将其初始化,以便我们可以开始使用其不同的引脚。
在初始化过程中,我们需要指定GPIO的模式,即输入或输出模式。
1.导入必要的库import RPi.GPIO as GPIO2.设置GPIO引脚模式:“输入/输出”GPIO.setmode(GPIO.BOARD)这将使我们根据引脚的物理编号而不是树莓派GPIO编号来标识GPIO引脚。
3.设置GPIO模式GPIO.setup(pin, mode)其中“pin”为GPIO引脚编号,“mode”可以是“IN”(输入模式)或“OUT”(输出模式)。
例如,要将GPIO引脚7设置为输出模式,代码如下:GPIO.setup(7, GPIO.OUT)二、读写GPIOGPIO只能够处理高低电平,因此我们需要了解如何使用Python将高电平和低电平发送到GPIO引脚,并从GPIO引脚读取高电平和低电平。
1.写GPIOGPIO.output(pin, value)其中,“pin”为GPIO引脚编号,“value”可以是HIGH(高电平)或LOW(低电平)。
例如,要将GPIO引脚7输出高电平,代码如下:GPIO.output(7, GPIO.HIGH)2.读GPIOGPIO.input(pin)其中,“pin”为GPIO引脚编号。
例如,要从GPIO引脚7读取电平,代码如下:input_value = GPIO.input(7)三、关闭GPIO当我们完成了对GPIO引脚的使用之后,需要将其关闭以防止出现不必要的错误并释放它们的状态。
我们可以使用GPIO.cleanup()函数将所有GPIO设置为默认状态。
STM32入门教程--GPIO
STM32 GPIO使用方法一、STM32 GPIO简介GPIO即通用I/O(输入/输出)端口,是STM32可控制的引脚。
STM32芯片的GPIO引脚与外部设备连接起来,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。
以STM32F407为例,其为F4系列是基于Cortex-M4内核,共有7组IO。
分别为GPIOA~GPIOG,每组IO有16个IO口,共有112个IO口通常称为 PAx、PBx、PCx、PDx、PEx、PFx、PGx,其中x为0-15。
STM32 GPIO的复用:STM32 有很多的内置外设,这些外设的外部引脚都是与 GPIO 共用的。
也就是说,一个引脚可以有很多作用,但是默认为IO口,如果想使用一个 GPIO内置外设的功能引脚,就需要GPIO的复用,那么当这个GPIO 作为内置外设使用的时候,就叫做复用。
比如说串口就是GPIO复用为串口。
二、GPIO的工作模式1、4种输入模式(1)GPIO_Mode_IN_FLOATING 浮空输入(2)GPIO_Mode_IPU 上拉输入(3)GPIO_Mode_IPD 下拉输入(4)GPIO_Mode_AIN 模拟输入2、4种输出模式(1)GPIO_Mode_Out_OD 开漏输出(带上拉或者下拉)(2)GPIO_Mode_AF_OD 复用开漏输出(带上拉或者下拉)(3)GPIO_Mode_Out_PP 推挽输出(带上拉或者下拉)(4)GPIO_Mode_AF_PP 复用推挽输出(带上拉或者下拉)3、4种最大输出速度(1)2MHZ (低速)(2)25MHZ (中速)(3)50MHZ (快速)(4)100MHZ (高速)关于它们的定义,都在 stm32f4xx_gpio.h 中,都为结构体形式的定义三、GPIO内部结构a、保护二极管: IO引脚上下两边两个二极管用于防止引脚外部过高、过低的电压输入,当引脚电压高于VDD_FT时,上方的二极管导通,当引脚电压低于VSS时,下方的二极管导通,防止不正常电压引入芯片导致芯片烧毁b、上拉、下拉电阻:控制引脚默认状态的电压,开启上拉的时候引脚默认电压为高电平,开启下拉的时候引脚默认电压为低电平c、TTL施密特触发器:基本原理是当输入电压高于正向阈值电压,输出为高;当输入电压低于负向阈值电压,输出为低;IO口信号经过触发器后,模拟信号转化为0和1的数字信号也就是高低电平并且是TTL电平协议这也是为什么STM32是TTL电平协议的原因d、 P-MOS管和N-MOS管:信号由P-MOS管和N-MOS管,依据两个MOS管的工作方式,使得GPIO具有“推挽输出”和“开漏输出”的模式 P-MOS管高电平导通,低电平关闭,下方的N-MOS低电平导通,高电平关闭注:VDD_FT 代表IO口,兼容3.3V和5V,如果没有标注“FT”,就代表着不兼容5V (在芯片数据手册的引脚定义中,会看到有“I/O电平”一列有FT即为支持5V)开漏输出和推挽输出的区别:推挽输出:可以输出强高低电平,连接数字器件,推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止.开漏输出:可以输出强低电平,高电平得靠外部电阻拉高。
四--GPIO接口
7
.
首先,查 看有关于 按键的硬 件连接图 ,如图所 示:
按键对应 于EINT05,及
KP_COL6
-7
8
.
GPH0和GPH2的三个寄存器的地址以及每个引脚所对应的寄存器位应 该查询S5PV210的硬件手册,如图所示:
9
.
接下来,查看LED灯的硬件连接图,如图所示。
当控制引脚置位高电平时,线路处于导通,此时 对应的LED灯点亮;当控制引脚置为低电平时, 对应线路处于断路状态,此时,对应的LED灯灭 。
key.bin: start.o key.o
arm-linux-ld -Ttext 0x20000000 -o key.elf $^
arm-linux-objcopy -O binary key.elf $@
ห้องสมุดไป่ตู้
arm-linux-objdump -D key.elf > key.dis
key.o : key.c
(*((volatile unsigned
#define GPC1DAT long *)0xE0200064))
(*((volatile unsigned
#define LEDS 1
#define DELAYVAL 1
18
.
/*延时等待函数*/ int delay(int time) { int i,j; for(i=0;i<time;i++) { for(j=0;j<0xfffff;j++); } return 0; }
if (key_val) //如果还不为0,表示真正有按键按下
{
下
if (0x01 == key_val) // 如果值为0x1(0b01)表示key1按
gpio操作实验原理
gpio操作实验原理一、GPIO原理简介GPIO(General-Purpose Input/Output)是一种通用输入输出接口,常用于嵌入式系统中的外设控制。
通过GPIO,我们可以控制微处理器的引脚,实现数字信号的输入和输出。
GPIO具有灵活的配置能力,可以配置为输入模式或输出模式,以实现不同的功能。
二、GPIO引脚配置在微处理器中,每个GPIO引脚都有对应的寄存器进行配置。
通过配置寄存器,我们可以设置引脚的工作模式、输出类型、输出速度等参数。
根据具体需求,选择合适的引脚进行配置是实现GPIO操作的关键步骤。
三、GPIO寄存器配置GPIO寄存器通常包括数据寄存器和控制寄存器。
数据寄存器用于存储当前引脚的电平状态,控制寄存器用于设置引脚的工作模式和其他相关参数。
通过向控制寄存器写入特定的值,可以实现对GPIO引脚的配置。
同时,读取数据寄存器的值可以获取当前引脚的电平状态。
四、GPIO输入模式在输入模式下,GPIO引脚用于接收外部信号。
通过配置控制寄存器,可以将引脚设置为上拉输入、下拉输入或开漏输入等模式。
不同的输入模式对应不同的电路结构,可以适应不同的外部设备接口标准。
在输入模式下,我们需要读取数据寄存器的值以获取引脚的电平状态。
五、GPIO输出模式在输出模式下,GPIO引脚用于输出数字信号。
通过配置控制寄存器,可以将引脚设置为推挽输出或开漏输出等模式。
推挽输出通常用于驱动低阻抗负载,而开漏输出则需外部上拉电阻才能正常工作。
在输出模式下,我们可以通过向数据寄存器写入特定的值来控制引脚的电平状态。
六、GPIO中断模式GPIO中断是微处理器的一种中断源,可以通过配置GPIO引脚的中断触发方式来实现。
常见的触发方式包括边沿触发和电平触发。
当GPIO 引脚的电平状态发生变化时,微处理器可以产生中断请求并执行相应的中断服务程序。
通过中断模式,可以实现实时响应和快速处理外部事件的功能。
七、GPIO定时器功能一些微处理器中的GPIO模块还集成了定时器功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
类别:技术文章来源:未知作者:未知关键字:GPIO加入日期:2011-1-9STM32 GPIO入门学习今天下午开始学习STM32的GPIO控制,开始以为跟AVR 单片机一样,只是设置方向寄存器跟引脚寄存器,一排引脚由8位变16位而已,谁知道一看资料才发现居然还有IO口状态设置,设置速度设置…不过还好,使用的是STM32的FWLib3.0软件包,里面的GPIO口函数都做好了,只要看一下使用就可以了。
先看一些网上跟书上找到的资料跟自己总结的咚咚:1.STM32每个GPI/O 端口有两个32 位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR,GPIOx_ODR),一个32 位置位/复位寄存器(GPIOx_BSRR),一个16 位复位寄存器(GPIOx_BRR)和一个32 位锁定寄存器(GPIOx_LCKR)。
2.GPIO 端口的每个位可以由软件分别配置成多种模式。
每个I/O 端口位可以自由编程,然而I/0 端口寄存器必须按32 位字被访问(不允许半字或字节访问)。
GPIOx_BSRR 和GPIOx_BRR 寄存器允许对任何GPIO 寄存器的读/更改的独立访问;这样,在读和更改访问之间产生IRQ 时不会发生危险。
端口位配置CNFx[1:0]=xxb,MODEx[1:0]=xxb3.GPIO_InitTypeDef是GPIO口的一个定义结构体,包含一个16位的变量GPIO_Pin;一个GPIOSpeed_TypeDef枚举结构体GPIO_Speed;一个GPIOMode_TypeDef 枚举结构体GPIO_Mode;这3个变量可以在外部被定义,用于初始化或者改变某些GPIO的速度跟类型。
typedef enum{GPIO_Speed_10MHz = 1,GPIO_Speed_2MHz,GPIO_Speed_50MHz}GPIOSpeed_TypeDef;typedef enum表示定义了一个枚举型的数据结构,可以用GPIOSpeed_TypeDef去定义变量,这个变量的取值就是GPIO_Speed_10MHz ,GPIO_Speed_2MHz, GPIO_Speed_50MHz中的一个。
默认为零,其后面的依次加1。
这些都可以自己取值,如GPIO_Speed_10MHz 就等于1,其后还是依次加1.4.强大的GPIO口设置:GPIOMode_TypeDef GPIO mode定义及偏移地址GPIO_Mode_AIN 0x00 模拟输入GPIO_Mode_IN_FLOATING 0x04 悬空输入GPIO_Mode_IPD 0x28 下拉输入GPIO_Mode_IPU 0x48 上拉输入GPIO_Mode_Out_OD 0x14 开漏输出GPIO_Mode_Out_PP 0x10 推挽输出GPIO_Mode_AF_OD 0x1c 开漏复用GPIO_Mode_AF_PP 0x18 推挽复用5.输出速度可选择:2MHz,10MHz,50MHz。
6.IO口功能:通用I/O(GPIO)用,输入输出;单独的位设置或位清除;外部中断/唤醒线:端口必须配置成输入模式时,所有端口都有外部中断能力;复用功能(AF),并且软件能重新映射I/O复用功能;GPIO锁定机制:主要针对复位设定的,当某端口位lock后,复位后将不改变的此端口的位配置。
使用起来如果自己去读写寄存器地址操作,还是十分麻烦的,还好FWLib3.0软件包里面的GPIO库文件已经为我们准备好了很多的操作函数,可以直接使用。
下面熟悉一些会比较经常使用的:1.void GPIO_DeInit(GPIO_TypeDef* GPIOx):直接初始化某排引脚的外围寄存器到复位的默认值。
2.void GPIO_AFIODeInit(void):字面理解是复用IO的初始化,但是IO的服用现在还没学习到…先空起3.void GPIO_Init(GPIO_TypeDef* GPIOx,GPIO_InitTypeDef* GPIO_InitStruct):根据GPIO_InitTypeDef 里面的值,初始化某排里面的某些引脚的模式跟速度4.void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct):给GPIO_InitTypeDef里面的项目赋默认值5.uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin):读某一排引脚里面某个引脚的值6.uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx):读整排引脚的值7.uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin):读某排引脚里面的输出寄存器的某个引脚值8.uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx):读某排引脚输出寄存器里面值9.void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin):某排引脚某个引脚输出110.void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin):某排引脚某个引脚输出011.void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal):设置某排引脚某个引脚的输出值12.void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal):设置某排引脚输出值13.void GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin):锁定某排引脚中某个引脚,复位时候设置不变。
14.void GPIO_EventOutputConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource):选择某个引脚当事件输出,不清楚虾米意思…15.void GPIO_EventOutputCmd(FunctionalState NewState):启用或禁止事件输出..同上,不解16.void GPIO_PinRemapConfig(uint32_t GPIO_Remap,FunctionalState NewState):修改复用引脚映射17.void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource):选择某个引脚当外部中断用>.< 具体函数里面的操作看得有点晕..哎后悔在学校时候C/C++没学好,给UESTC丢人了…不过看注释,参数加名字猜,作用还是可以猜到的,使用起来也比较方便…在昨天建好的新project里面,打开main.c,把里面内容删除,开始写跑马灯程序…#include "stm32f10x.h"#include "stm32f10x_conf.h"GPIO_InitTypeDef PC;void LED_Init(void){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);//开GPIOC时钟PC.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 |GPIO_Pin_9;PC.GPIO_Mode = GPIO_Mode_Out_PP;PC.GPIO_Speed = GPIO_Speed_2MHz;GPIO_Init(GPIOC, &PC);}void Delay(vu32 nCount){for(; nCount != 0; nCount—);}main(){LED_Init();while(1){ GPIO_SetBits(GPIOC, GPIO_Pin_6);//GPIOC.6=1 Delay(0x8ffff);GPIO_ResetBits(GPIOC, GPIO_Pin_6);//GPIOC.6=0 Delay(0x8ffff);GPIO_SetBits(GPIOC, GPIO_Pin_7);//GPIOC.7=1 Delay(0x8ffff);GPIO_ResetBits(GPIOC, GPIO_Pin_7);//GPIOC.7=0Delay(0x8ffff);GPIO_SetBits(GPIOC, GPIO_Pin_8);//GPIOC.8=1Delay(0x8ffff);GPIO_ResetBits(GPIOC, GPIO_Pin_8);//GPIOC.8=0Delay(0x8ffff);GPIO_SetBits(GPIOC, GPIO_Pin_9);//GPIOC.9=1Delay(0x8ffff);GPIO_ResetBits(GPIOC, GPIO_Pin_9);//GPIOC.9=0Delay(0x8ffff);}}把LED的正极连在GPIO的6-9pin上,负极都连到地上后,Rebuilt All~然后Download and Debug… 然后在调试界面里面Run~ 嘿嘿看到跑马灯效果了…N年前开始玩51的时候也是这个开始的…不过那个程序多简单- -||| 直接把一个1位移,然后PC等于过去就行了…跑马灯之后我又试着用5个GPIO口来驱动一个串口的点阵屏幕,估计是2MHz还太快的原因,一直没把它点亮…明天加延时跟修改下其他的,看看能不能把它点亮。