你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 4096|回复: 0

STM32学习(四)——GPIO在MDK中的使用

[复制链接]

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2010-10-11 17:10:28 | 显示全部楼层 |阅读模式
使用GPIO时,我们常用到的是:stm32f10x_gpio.h和stm32f10x_gpio.h文件。
1、gpio.h介绍
GPIO.H中是一些参数的定义和外部驱动的声明
   IS_GPIO_ALL_PERIPH(PERIPH):用来判断输入的GPIO_X是不是在范围之内
   IS_GPIO_SPEED(SPEED):判断GPIO的频率是不是输入正确
   IS_GPIO_MODE(MODE):判断输入模式是否正确
   IS_GPIO_BIT_ACTION(ACTION):判断位设置是否正确
   IS_GPIO_PIN(PIN):判断输入的IO口是不是在0-15范围内
   IS_GET_GPIO_PIN(PIN):判读读取IO口是否在0-15范围内
typedef enum
{ GPIO_Mode_AIN = 0x0,
  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
}GPIOMode_TypeDef;
上面这个结构体是定义了GPIO在设置时的一些参数。其中包括有输入输出、IO模式、IO方式等。
void GPIO_DeInit(GPIO_TypeDef* GPIOx);
这个函数是用来默认设置GPIO的,只需要输入GPIO的端口号就可以了。在GPIO.C中有详细的代码和说明。
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
这个函数用来设置GPIO的管脚,我们常用到的GPIO配置程序。GPIOx, 是要配置的端口号,GPIO_InitStruct该端口的详细配置。
2、下面我简单介绍一些GPIO是用默认驱动库的配置。
GPIO_InitTypeDef  GPIO_InitS;
 
 GPIO_InitS.GPIO_Pin = GPIO_Pin_1 ;
 GPIO_InitS.GPIO_Speed = GPIO_Speed_50MHz;
 GPIO_InitS.GPIO_Mode = GPIO_Mode_Out_PP;
 GPIO_Init(GPIOA, &GPIO_InitS);
我配置的是GPIOA的1引脚。输出模式,输出速度是50MHz。这样我们就配置好了PA_01引脚。
3、设置GPIO的输出状态,输出高和低,对于下面函数的具体代码,大家可以在GPIO.C中查看。
3.1、输出高电平
GPIO_SetBits(GPIOA, GPIO_Pin_1);
3.2、输出低电平
GPIO_ResetBits(GPIOA, GPIO_Pin_1);
这样,我们就可以使用GPIO的输出功能了。输入检测类似于输出功能,只要将模式修改一下就可以了。后面我们详细介绍GPIO寄存器。
回复

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
13245底部标题123相同标题
12底部标题123相同标题
33333底部标题123相同序号
3435底部标题-无链接
关注我们
st-img 微信公众号
st-img 手机版