《STM32自学手册_GPIO》.pdf

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
简述 GPIO 是STM32 最常用的设备之一。STM32 可以提供最多达80 个双向IO 口(视型号而定), 他们分别分布在A-E 五个端口中。每个端口有16 个IO,每个IO 口都可以承受最大为5V 压 降。通过GPIO 的配置寄存器,我们可以把GPIO 口配置成我们想要的工作模式,一共有如 下8 种模式: ● 浮空输入 ● 带上拉电阻的输入 ● 带下拉电阻的输入 ● 模拟输入 ● 开漏输出 ● 推挽输出 ● 复用推挽输出 ● 复用开漏输出 STM32 的GPIO 除了上述8 种工作模式之外,还可以进行两种映射:外部中断映射和第二功 能映射(也叫重映射)。当某个IO 口映射为外部中断通道后,该IO 口就成为一个外部中断 源,我们可以在这个 IO 上产生外部事件来实现对STM32 程序运行的介入。而当某个 IO 被 重映射时,它就会切换成为某个外部设备的功能IO 口。重映射功能可以让工程师在设计PCB 的时候拥有更大的灵活性。 此外,STM32 还有位操作寄存器和锁定寄存器等,通过这些寄存器我们可以更加灵活的控 制STM32 的IO 口为我们服务。 硬件电路 本章实验硬件电路如图 11-1 所示,LED0 和 LED1 分别通过一个 1K 限流电阻连接在STM32 的GPIOA.2 和GPIO.3 上,另一端接GND (注意是GND )。 图11-1 实验设计 本章的实验主要为了学习如何对STM32 的GPIO 口进行操作。根据图11-1 所示硬件资源, 我们可以做一个很简单的实验设计:将这两个LED 点亮,隔一段时间后熄灭。 程序设计 该实验非常的简单,实现过程如下 ● 配置RCC 寄存器组,使用PLL 输出72MHz 时钟; ● 配置GPIOA.2 和GPIOA.3 为推挽输出,最大翻转频率为50MHz ; ● 点亮与熄灭LED; 程序组里面一共包含以下文件: boot 文件组:cortexm3_macro.s 和stm32f10x_vector.s 文件; library 文件组:stm32f10x_rcc.c、stm32f10x_flash.c、stm32_gpio.c、stm32f10x_lib.c 文件; interrupt 文件组:stm32f10x_it.c 文件; src 文件组:main.c 文件; 其中boot 文件组放置的是STM32 的启动文件,读者暂时不必深究,引用即可;Library 文件 组中,stm32f10x_rcc.c、stm32f10x_flash.c 包含着配置 RCC 的底层函数,stm32_gpio.c 包含 配置 GPIO 的底层函数;stm32f10x_lib.c 则负责对整个库进行集中管辖,在任何一个基于固 件库函数的 STM32 应用函数里,stm32f10x_lib.c 都是不可或缺的;interrupt 文件组的 stm32f10x_it.c 包含STM32 的中断服务子程序,虽本实验尚未启用中断,但为了保持工程的 完整性还是将其添加进来。 程序流程图如下: 程序启动之后,我们应该看到如下现象:LED0 和LED1 被点亮,但在隔一小段时间后熄灭。 程序清单如下: /**** ************************************************************************** * * 文件名 : main.c * 作者 : Losingamong * 时间 : 08/08/2008 * 文件描述 : 主函数 ******************************************************************************* */ / * 头文件 */ #include stm32f10x_lib.h /* 自定义同义关键字 */ /* 自定义参数宏 */ #define Delay(n) while((n)--) /* 自定义函数宏 */ /* 自定义变量

文档评论(0)

ghfa + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档