历史上的今天
返回首页

历史上的今天

今天是:2025年03月26日(星期三)

正在发生

2020年03月26日 | 单片机引脚模式配置

2020-03-26 来源:eefocus

单片机STM32的引脚有多种方式可以选择。


如果你是用直接写寄存器来配置的话,那么,看上手册,给“配置寄存器”对应的位写0或者1就可以达到目的。如下图:

13367077-d06a2971e03404e6.png?imageView2/2/w/550

如果是用库函数来配置的话,就需要知道下面这个结构体中的变量代表的意义。

13367077-242f676aa71136d0.png?imageView2/2/w/550

库函数,选择好GPIO_Mode之后,就要使用GPIO_Init()函数来配置,你可以打开这个配置函数,实际上也是在对“配置寄存器”进行写操作。


先解释一下这个结构体中的各个变量的意思:

GPIO_Mode_AIN:模拟输入模式

GPIO_Mode_IN_FLOATING:浮空输入模式

GPIO_Mode_IPD:下拉输入模式

GPIO_Mode_IPU:上拉输入模式

GPIO_Mode_Out_OD:通用开漏输出模式

GPIO_Mode_Out_PP:通用推挽输出模式

GPIO_Mode_AF_OD:复用开漏输出模式

GPIO_Mode_AF_PP:复用推挽输出模式


前四个是输入模式,后四个是输出模式。


输入和输出


从51过来的人,对输入和输出比较陌生。51单片机不用设置输入和输出模式,自动变换,无需程序配置,当我们写程序读引脚的电平的时候,实际上就是作为输入模式来使用,当我们写程序让引脚输出电平的时候,实际上就是作为输出模式来使用。也就是说,并不是51单片机没有输入和输出这个概念,而是你已经使用了很久却没有发现。


STM32与51的区别就是:当我们要读引脚电平的时候,也就是作为输入,我们必须要先把引脚设置为输入功能,才可以读。当我们要控制引脚高低电平的时候,也就是作为输出,我们必须要先把引脚设置为输出功能,才可以设置。


上拉与下拉


概念比较抽象,你只需要记住:在引脚上没有外界干扰的情况下,上拉就是把引脚设置为高电平了,你用万用表量上拉引脚,就是高电平;下拉就是把引脚设置为低电平了,你用万用表量下拉引脚,就是低电平,也就是0V。


推挽与开漏


概念比较抽象,你只需要记住:设置为推挽,就是提高了引脚的输出电流能力。设置为开漏,就是提高了引脚的输入电流能力。然后还要知道,设置为开漏时,如果外部不加上拉电阻,默认输出是低电平。


通用与复用


通用就是作为普通的输入和输出引脚。复用就是该引脚可以作为SPI引脚I2C引脚等其他功能的引脚。


使用介绍


结合上面讲的,可以得到一些简单的应用设置方式。


比如检测按键,就应该设置为输入,如果外部没有加上拉电阻,你就需要设置引脚为上拉输入,这样如果检测到引脚是低电平,就是按下按键了。如果外部加了上拉电阻,你这时既可以把引脚设置为上拉输入,也可以设置为浮空输入,设置为这两种,由于外部上拉电阻的原因,默认就是高电平,同样,检测到低电平时,就是按键按下了。


当你要控制引脚高低电平做应用时,就是需要把引脚设置为输出功能。例如驱动一个器件,驱动一个发光二极管等。如果你要使用高电平点亮发光二极管,就需要把引脚设置为推挽输出,以增大电流输出能力,如果你设置为开漏输出,发光二极管肯定是点不亮了。但是如果你使用低电平点亮发光二极管,那么设置为开漏和推挽输出都可以正常点亮发光二极管。


上面内容比较抽象,需要结合实际才可深入理解。暂时理解不了的,不用着急,接触的多了,自然会理解透彻的。

推荐阅读

史海拾趣

大毅科技公司的发展小趣事

大毅科技于1989年成立,是台湾的一家新兴企业。在公司成立的初期,大毅科技就专注于晶片电阻的研发与生产,这在当时是一个相对新兴且竞争激烈的领域。创始人凭借对技术的深刻理解和敏锐的市场洞察力,带领公司逐步在市场中站稳脚跟。通过不断的技术创新和产品优化,大毅科技逐渐获得了客户的认可,并在行业中树立了自己的品牌。

Brite-Led Optoelectronics Inc公司的发展小趣事

随着市场竞争的加剧,Brite-Led意识到单凭自身力量难以持续保持领先。于是,公司积极寻求与其他企业和研究机构的合作研发机会。通过与一家知名高校的合作,Brite-Led成功开发出一种新型的LED封装技术,大幅提高了产品的可靠性和耐用性。这一合作不仅加强了Brite-Led的技术实力,也为其带来了更多的商业机会和合作伙伴。

Fenghua (HK) Electronics Ltd公司的发展小趣事

作为一家有社会责任感的企业,Fenghua (HK) Electronics Ltd积极履行社会责任,关注环保和公益事业。公司采用了环保材料和节能技术,降低了生产过程中的能耗和排放。同时,公司积极参与社会公益活动,为当地社区和教育事业做出了积极贡献。这些举措不仅提升了公司的社会形象,也为企业的可持续发展奠定了坚实基础。

请注意,以上故事框架仅供参考,你可以根据Fenghua (HK) Electronics Ltd公司的实际情况和发展历程进行进一步的拓展和完善。

Dfx公司的发展小趣事

某消费电子公司在生产过程中经常遇到质量问题,导致产品退货率居高不下。为了解决这个问题,该公司引入了DFX的设计理念,对产品设计、生产和测试等环节进行了全面优化。通过改进生产工艺、优化材料选择和加强质量控制等手段,该公司成功提高了产品的质量和可靠性,降低了退货率,赢得了消费者的信任。

Elprotronic Inc.公司的发展小趣事

随着公司业务的不断发展壮大,Elprotronic Inc.开始实施国际化战略。他们积极开拓海外市场,与全球众多知名电子厂商建立了长期稳定的合作关系。为了更好地服务海外客户,公司还成立了专业的海外销售和技术支持团队,提供及时、高效的服务。通过国际化战略的实施,Elprotronic Inc.不仅拓展了业务范围,也提升了公司的国际竞争力。

Heatron公司的发展小趣事

进入21世纪后,Heatron公司开始积极寻求国际合作机会,以进一步拓展其全球业务。公司先后与多个国家的知名企业建立了战略伙伴关系,共同开发新产品、新技术。通过资源共享和市场互补,Heatron不仅成功进入了多个新兴市场,还显著提升了其品牌在国际市场上的知名度和影响力。

问答坊 | AI 解惑

关于选择楼宇自动化的发展前景

就业问题! 专业是自动化,刚接触楼宇自控这个行业,现在在一个小公司实习,感觉对这个方向爱做的东西比较感兴趣,可是又很迷茫,现在的公司很小,不知道以后的发展如何,想向各位前辈请教一下,不知道这个行业的前景怎样?…

查看全部问答>

初学WinCE编程欲请老师!

本人以前没有学习过WinCE/Windows mobile开发, 想快速入手,现欲觅WinCE/Windows mobile开发指导老师。 辅导时间:1~2个周末,比如4月18日~4月19日 条件: 1。精通WinCE/Windows mobile开发; 2。精通BSP开发和Windows mobile上的应用开发; ...…

查看全部问答>

想做一个PDA的水电抄表程序,有开发经验的可与我联系。

想做一个PDA的水电抄表程序,有开发经验的可与我联系。 QQ: 463071950…

查看全部问答>

c#图片幻灯片播放

在VS2005的wince仿真下的一个图片的幻灯片播放。。有没有高手大大来说下要怎么做? 或提供些材料也行。。…

查看全部问答>

stm32f101r8t6的GPIO求救

各位大侠:     STM32F101R8T6MCU的PC7口用推挽输出只有2V(系统供电3.3V)?测试时已把PC7的外部电路全部去掉,就让PC7,输出一个方波。用示波器看,方波最高电压也是2V。 另我感到奇怪的是!与PC7同样的IO PC6却有3.3V的输出, ...…

查看全部问答>

C2000最小系统DIY计划之硬件设计资料整合

你用过C2000吗? 是否也曾想过DIY 一个最小系统? 实现过吗? 和大家一起分享下,你电脑里所有的关于C2000硬件设计的资料。 我先顶一个 TMS320F28xx和TMS320F28xxx DSCs的硬件设计指南。  …

查看全部问答>

TI开放日

TI开放日----北京,成都的朋友抓紧哦 欢迎\"芯\"人类!走进TI,您将亲身感受TI的创新,TI的社会责任,Tier的工作和生活 走近Tier,您将获得师兄师姐和HR的经验分享 快来TI Open Day吧,和我们一起 Engineering the world Engineering your future! 5 ...…

查看全部问答>

关于CCS int类型转char的问题,求助啊

MSP430 LAUNCH PAD 2553g这个平台我利用内部温度传感,但是计算是用int类型来运算的,我放在1.8寸液晶是用char的变量来送显示,如何转换啊。 TEMP=ADC10_Result-746; g=(unsigned char)TEMP/100; 我是这样转换的 但是不管如何转换结果都是得符号 ...…

查看全部问答>