GPIO配置及解读(STM32CubeMx)

GPIO是General Purpose Input Output (通用输入输出)的缩写,在物理上的GPIO就是芯片的引脚。通用指的是GPIO具有多种模式,输入输出指的是GPIO具有输入和输出这两种基本模式,为什么说是有两种基本模式呢,因为GPIO的模式是有很多种的,但是最基本的两种模式一个是输入另一个是输出,这个还是比较好理解的,就是无论我们如何去使用的引脚,它最终的作用都是去输出电平或者检测输入电平。

以上就是GPIO的含义,因为根据笔者自己的经验,太长的文章和教程笔者自己也是懒得看的,我们查资料无非就是个图个方便快捷、简单易懂。所以笔者也不费口舌从那些GPIO结构图里一部分一部分分析。我们简单粗暴的用stm32CubeMx来直观解读GPIO的控制。

 

↑笔者手上的事STM32f103ZET6的学习板,所以就开个这样的工程。        

↑新建工程以后以上两步也是最基本的,设置时钟源。为了符合简单粗暴的宗旨,这个具体之后再出个专门讲的。现在大概记得就是这东西就是选择板子的时钟源的,没他不行。

↑这一步则是随便找个引脚启用,上面的引脚除了个别有特殊用途大部分都是GPIO,简单点区分就是PX(此处的X代指:A、B、C...等字母)等都是GPIO。

↑这里配置GPIO的:配置好后的GPIO输出电平:就是配置好后GPIO输出的是高电平还是低电平

                   GPIO模式:有总的分为输入输出,输出又分开漏输出和推挽输出,输入就没有分

                   GPIO引脚上下拉:决定是否加上上拉电阻或者下拉电阻

                   GPIO速度:有低中高三种速率选择

                   GPIO引脚名字:自己取个名字,会代替GPIO_PIN_5这样的系统默认名

↑这是配置时钟树。简单粗暴就按这么配就好了,不影响。下次再讲

 ↑上面第一个框选第二个可以只添加需要用的HAL库文件(stm32CUBEMx都是生成HAL库的)。第二个框选1、3、4,三和四是不用动的自动勾选,把二改成一可以让你生成的各个文件分成.c和.h文件生成。

不懂就按这个选,如果不懂想搞懂的话就自己勾选然后创建工程,区别还是蛮明显的。

↑因为笔者用的是Keil5,所以这边的IDE是选MDK-ARM和V5,反正在笔者看来keil界面简洁,调试简单,是非常适合单片机的程序编写的。

还有要注意的是保存文件的路径不要带有中文字符,不然会报错。

Application/MDK-ARM:

这是启动文件,是用汇编和c语言写的,主要是在main函数执行前进行一些初始化,比如中断向量表啥的。Cube自动添加的可以暂时不用管。

Application/User/Core:

用户自定义文件,虽然里面的这些刚打开的时候也是Cube生成的,但是一般你自己写的也放这里。

Drivers/STM32F1XX_HAL_Driver:

HAL库文件,就是封装好的各个外设使用函数的库文件

Driver/CMSIS:

st系统文件,启动文件会调用这文件里的函数,实现时钟配置和中断向量表地址的配置啥的。

↑在gpio.c里面我们能看到MX_GPIO_Init这个函数,这个函数就是GPIO的初始化函数。

↑keil在一些初始化后,也是从main函数开始。可以看到刚刚在gpio.c里被定义的函数在这使用了,很明显是用来初始化gpio的。但是如果想要使用gpio光是初始化了也是不够的。简单来说就是你准备好了做饭的菜、工具但是并不意味着饭就可以吃了。

↑可以看到GPIO的HAL库里提供的两个函数,一个是红圈的HAL_GPIO_ReadPin一个是篮圈的HAL_GPIO_WritePin。顾名思义,前面是读取引脚电平后者是写引脚电平。所以如果想要改变刚刚初始化好了的的GPIO的电平,只需要使用这两个已经封装好的函数即可。

 ↑如上,HAL_Delay是一个hal库自带的毫秒级延时函数。所以上面的程序的意识就是让PB8每隔1S翻转一次电平。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值