打印
[其他ST产品]

STM32F3 GPIO的八种模式及工作原理

[复制链接]
楼主: kzlzqi
手机看帖
扫描二维码
随时随地手机跟帖
21
kzlzqi|  楼主 | 2023-5-31 14:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
端口输出数据寄存器ODR

使用特权

评论回复
22
kzlzqi|  楼主 | 2023-5-31 14:49 | 只看该作者
端口位设置/清除寄存器BSRR

使用特权

评论回复
23
kzlzqi|  楼主 | 2023-5-31 14:49 | 只看该作者
端口位清除寄存器BRR

使用特权

评论回复
24
kzlzqi|  楼主 | 2023-5-31 14:49 | 只看该作者
端口配置锁定寄存器LCKR

使用特权

评论回复
25
kzlzqi|  楼主 | 2023-5-31 14:50 | 只看该作者
编写程序

上面介绍了GPIO的8中工作模式以及GPIO的寄存器使用,那么在控制GPIO之前需要配置GPIO的工作模式,这是STM32和51单片存在区别的地方。51单片的引脚功能是确定的,而STM32的引脚都是可以复用的,程序配置GPIO的方式有两种,一种是通过库文件的方法进行配置,另一种是通过寄存器进行配置,由于库文件的配置方式比较简单,网上也有很多文章讲解,这里我以寄存器为例进行学习。
注意:STM32的所用引脚都可以用于中断
程序是基于之前创建的项目模板(寄存器版)中进行更改即可,没创建过STM32项目的小伙伴浏览之前的STM32新建模板之库文件和STM32新建模板之库文件。

使用特权

评论回复
26
kzlzqi|  楼主 | 2023-5-31 16:09 | 只看该作者
本帖最后由 kzlzqi 于 2023-5-31 16:10 编辑

更改main.c文件为一下内容即可

#include "stm32f10x.h"
#include "sys.h"
       
/*------------------------------------------------------------
                           主函数
------------------------------------------------------------*/
int main()
{

        RCC->APB2ENR|=0X0000001c;//先使能外设IO PORTa,b,c时钟
       
        RCC->APB2ENR |= 1 << 12;

        GPIOB->CRH=0X00030000;    //设置GPIOB的12引脚为推挽输出

        while (1)
        {                       
                delay_ms(100);              
                GPIOB->ODR = ~(1 << 12);        //设置12引脚输出0

                delay_ms(100);
                GPIOB->ODR |= 1 << 12;                //设置12引脚输出1

        }
}



使用特权

评论回复
27
kzlzqi|  楼主 | 2023-5-31 16:38 | 只看该作者
这是一个led闪烁的程序,编译下载运行即可

使用特权

评论回复
28
jackcat| | 2023-6-7 21:23 | 只看该作者
可选择的输入模式:浮动输入和带上拉输入 可选择的输出模式:推挽式输出和开漏输出 数据输入和输出采用独立的寄存器 外部中断可以单独使能和关闭

使用特权

评论回复
29
MessageRing| | 2023-6-7 22:28 | 只看该作者
寄存器开发?

使用特权

评论回复
30
jimmhu| | 2023-6-8 13:50 | 只看该作者
推挽输出模式适用于驱动大电流负载。2

使用特权

评论回复
31
bestwell| | 2023-6-8 14:37 | 只看该作者
gpio的配置模式有哪几种              

使用特权

评论回复
32
jimmhu| | 2023-6-8 16:41 | 只看该作者
GPIO的工作模式主要有八种:4种输入方式,4种输出方式,分别为输入浮空,输入上拉,输入下拉,模拟输入;输出方式为开漏输出,开漏复用输出,推挽输出,推挽复用输出。

使用特权

评论回复
33
鹿鼎计| | 2023-6-9 17:14 | 只看该作者
有哪些gpio配置模式

使用特权

评论回复
34
Undshing| | 2023-6-9 22:57 | 只看该作者
四种输出模式都带上下拉吗?

使用特权

评论回复
35
mattlincoln| | 2023-6-13 22:19 | 只看该作者
将GPIO设置为ADC输入端口,可以实现模拟信号采集。

使用特权

评论回复
36
Stahan| | 2023-6-13 22:52 | 只看该作者
开漏输出和推挽输出的区别是什么啊?

使用特权

评论回复
37
nomomy| | 2023-6-14 09:44 | 只看该作者
将GPIO口设置为事件模式,当外部信号引起GPIO口电平变化时,会产生一个事件,并触发对应的事件处理程序。

使用特权

评论回复
38
belindagraham| | 2023-6-14 12:46 | 只看该作者
将GPIO口设置为输入模式,可以用于读取外设或传感器输出的数字信号。

使用特权

评论回复
39
mollylawrence| | 2023-6-14 14:47 | 只看该作者
输入模式 用于读取外部信号输入,可以设置为上拉、下拉或者浮空输入。

使用特权

评论回复
40
abotomson| | 2023-6-14 14:53 | 只看该作者
将GPIO口设置为开漏输出模式,输出电平为高时,GPIO口会被拉低,并且电流较小,适用于I2C总线等多点共享设备。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则