STM32 GPIO原理与配置方法_第1页
STM32 GPIO原理与配置方法_第2页
STM32 GPIO原理与配置方法_第3页
STM32 GPIO原理与配置方法_第4页
STM32 GPIO原理与配置方法_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ALIENTEK《例说STM32》

例说STM322023/2/5广州市星翼电子科技有限公司1ALIENTEK开发板购买店铺

店铺:ALIENTEK第4讲GPIO原理与配置方法4.1GPIO基本结构4.2

GPIO配置方法

4.3位带操作4.4跑马灯实验4.5按键输入实验《例说STM32》22023/2/5广州市星翼电子科技有限公司ALIENTEK4.1GPIO基本结构《例说STM32》32023/2/5广州市星翼电子科技有限公司ALIENTEK《例说STM32》42023/2/5广州市星翼电子科技有限公司每个IO口可以自由编程,单IO口寄存器必须要按32位字被访问。STM32的很多IO口都是5V兼容的,这些IO口在与5V电平的外设连接的时候很有优势,具体哪些IO口是5V兼容的,可以从该芯片的数据手册管脚描述章节查到(I/OLevel标FT的就是5V电平兼容的)。ALIENTEK4.2GPIO配置方法《例说STM32》52023/2/5广州市星翼电子科技有限公司ALIENTEK《例说STM32》62023/2/5广州市星翼电子科技有限公司

GPIO8种模式

-输入浮空-输入下拉-输入上拉

-模拟输入

-开漏输出

-推挽式输出

-推挽式复用功能

-开漏复用功能

3个最大输出速度 -2MHz-10MHz-50MHzALIENTEK《例说STM32》72023/2/5广州市星翼电子科技有限公司GPIO输入输出配置相关寄存器-GPIOx_CRL:端口配置低寄存器-GPIOx_CRH:端口配置高寄存器

-GPIOx_IDR:端口输入寄存器-GPIOx_ODR:端口输出寄存器

-GPIOx_BSRR:端口位设置/清除寄存器

-GPIOx_BRR:端口位清除寄存器-GPIOx_LCKR:端口配置锁存寄存器

寄存器配置在《STM32中文参考手册V10》的8.2节有详细讲解。ALIENTEK《例说STM32》82023/2/5广州市星翼电子科技有限公司ALIENTEK《例说STM32》92023/2/5广州市星翼电子科技有限公司输入模式下,上拉还是下拉输入由ODR寄存器相应位决定。ALIENTEK《例说STM32》102023/2/5广州市星翼电子科技有限公司ALIENTEK《例说STM32》112023/2/5广州市星翼电子科技有限公司ALIENTEK《例说STM32》122023/2/5广州市星翼电子科技有限公司ALIENTEK《例说STM32》132023/2/5广州市星翼电子科技有限公司ALIENTEK4.3位带操作位带操作就是把每个比特膨胀为一个32位的字,当访问这些字的时候就达到了访问比特的目的,比如说BSRR寄存器有32个位,那么可以映射到32个地址上,我们去访问(读-改-写)这32个地址就达到访问32个比特的目的。《例说STM32》142023/2/5广州市星翼电子科技有限公司ALIENTEK位带操作就是把每个比特膨胀为一个32位的字,当访问这些字的时候就达到了访问比特的目的,比如说BSRR寄存器有32个位,那么可以映射到32个地址上,我们去访问(读-改-写)这32个地址就达到访问32个比特的目的。在CM3支持的位带中,有两个区中实现了位带。

其中一个是SRAM区的最低1MB范围,

0x20000000‐0x200FFFFF(SRAM区中的最低1MB);

第二个则是片内外设区的最低1MB范围,

0x40000000‐0x400FFFFF(片上外设区中的最低1MB)。《例说STM32》152023/2/5广州市星翼电子科技有限公司ALIENTEK位带区:支持位带操作的地址区

位带别名:对别名地址的访问最终作用到位带区的访问上(注意:这中间有一个地址映射过程)

映射关系式:

《例说STM32》162023/2/5广州市星翼电子科技有限公司ALIENTEKsys.h文件对GPIO输入输出部分功能实现了位带操作:《例说STM32》172023/2/5广州市星翼电子科技有限公司ALIENTEK使用位带操作设置IO口输入输出方法:

PAout(8)=0;//PA.8输出低

PAout(8)=1;//PA.8输出高

u8led0;

led0=PAin(8);//读取PA8的输入电平

使用位带操作IO口的前提是先进行了IO口端口模式相关配置,也就是端口初始化。

《例说STM32》182023/2/5广州市星翼电子科技有限公司ALIENTEK4.4跑马灯实验

硬件连接

该实验的硬件电路在ALIENTEMMiniSTM32开发板上默认是已经连接好了

的。DS0接PA8,DS1接PD2。所以在硬件上不需要动任何东西。其连接原理图如图6.4下:

LED与STM32连接原理图《例说STM32》192023/2/5广州市星翼电子科技有限公司ALIENTEK

实验现象两个LED:DS0和DS1交替闪烁。《例说STM32》202023/2/5广州市星翼电子科技有限公司ALIENTEK《例说STM32》212023/2/5广州市星翼电子科技有限公司实验源码:led.hALIENTEK《例说STM32》222023/2/5广州市星翼电子科技有限公司led.cALIENTEK《例说STM32》232023/2/5广州市星翼电子科技有限公司main.cALIENTEK《例说STM32》242023/2/5广州市星翼电子科技有限公司跑马灯实验软件仿真与下载ALIENTEK4.5按键输入实验

硬件连接

本实验所需要的硬件电路在开发板上都已经连接好了,不需要经过任何设置,直接编写代码就可以了。

LED的连接在上一节已经介绍过了,在MiniSTM32开发板上的按键KEY0是接在PA13

上,KEY1是接在PA15上的,WK_UP接在PA0上。

按键与STM32连接原理图《例说STM32》252023/2/5广州市星翼电子科技有限公司ALIENTEK《例说STM32》262023/2/5广州市星翼电子科技有限公司这里需要注意的是KEY0和KEY1是低电平有效的,而WK_UP是高电平有效的,而且要确认WK_UP按钮与DS18B20的连接是否已经断开,如果没有,则要先断开,否则DS18B20会干扰WK_UP按键!并且KEY0和KEY1连接在与JTAG相关的IO口上,所以在软件编写的时候要先禁用JTAG功能(SWD也需要禁用),才能把这两个IO口当成普通IO口使用。

实验现象:ALIENTEKMiniSTM32开发板上载有的3个按钮(KEY_UP、KEY0、KEY1),来控制板上的2个LED(DS0和DS1),其中KEY0控制DS0,按一次亮,再按一次,就灭。KEY1控制DS1,效果同DS0。KEY_UP则同时控制DS0和DS1,按一次,他们的状态就翻转一次。ALIENTEK《例说STM32》272023/2/5广州市星翼电子科技有限公司程序源码:key.h

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论