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

查看: 4122|回复: 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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版