历史上的今天
返回首页

历史上的今天

今天是:2024年09月03日(星期二)

正在发生

2020年09月03日 | stm32中gpio的学习浅谈

2020-09-03 来源:eefocus

在基本入门熟悉了开发环境后,我开始学习stm32中的gpio口用法,学习的方法还是最直观简便的先控制LED灯。然而stm32中点亮led倒没有51单片机那么简便。有过51单片机学习经验的伙伴们,肯定熟悉下图的代码(51中控制led的程序)。

      

如果同样方法写在stm32中肯定是不行的了,首先因为stm32中没有51头文件中那样定义好了P0口可以直接进行总线操作,其次stm32中的gpio口默认是输入模式并且还需要打开相关引脚口的时钟。可能很多人会觉得stm32中官方给的固件库可以直接操作寄存器从而控制gpio口,但是我觉得我这样的初学者还是多了解下底层的方法便于更好的理解。要实现stm32点亮一个led灯(即让gpio口输出一个高电平)一共分三步:


       第一步:通过时钟控制寄存器rcc打开相应gpio口的时钟如下例中的PB0。

       第二步:通过CRL寄存器设置gpio口为推挽输出模式。

       第三步:通过ODR寄存器将相应gpio口输出电平。


所谓单片机中的寄存器,其实就是一些有特殊功能的内存单元,是生产官方配置的。而我们正是通过寄存器来实现单片机的各种控制。下面来讲解下我所用的三种方法,首先是最原始的直接操作内存单元。相应的寄存器内存地址是通过官方手册查找的,代码如下:

      

很明显,虽然第一种方法是非常简短且不需要额外库函数的代码,但是程序的可读性和可移植性都非常差。于是我便采用了第二种使用寄存器映射的方法,所谓寄存器映射也可以理解成就是定义寄存器别名的过程。


第三种也是最后一种便是使用官方所给的固件库了,其实原理大致也就是用宏定义和结构体定义些基地址,然后把寄存器的位操作过程等都写在库函数中封装起来,我们只要操作相应库函数就可以了。为了增加可读性,我把库函数再宏定义了一遍。


上图代码中那个延时函数是为因为还有没有学习中断才这样写,师兄也指出来和我说那是很不好的习惯,因为在等待延时过程中别的任务都无法运行并且时钟的延时精度不高。由于之前我的C语言功底并不很扎实,所以在结构体,枚举,宏定义以及一些强制类型转换的指针操作,我都添加了许多注释来增加印象。以上图文便是我本篇博客的全部内容了,继续保持学习分享更多的博客。

推荐阅读

史海拾趣

冠图电子(GTL-POWER)公司的发展小趣事

冠图电子(GTL-POWER)发展故事之一:初创与技术积累

冠图电子(GTL-POWER)的故事始于2009年,当时它作为一家专注于中小功率模块电源、定制电源的新兴企业在广州成立。创始人凭借对电力电子技术的深刻理解和敏锐的市场洞察力,组建了一支专业的研发团队,致力于高品质模块电源的研发与生产。在公司成立初期,团队就明确了技术创新和质量为先的发展策略,逐步建立了微功率模块电源样品生产线,为后续的发展奠定了坚实基础。

冠图电子(GTL-POWER)发展故事之二:市场拓展与战略布局

随着技术实力的不断增强,冠图电子开始积极拓展市场。2010年至2012年间,公司先后在北京、上海、深圳等城市设立了办事处,构建了遍布全国的销售网络。这一战略布局不仅拓宽了销售渠道,还加强了与当地客户的紧密联系,进一步提升了品牌知名度。同时,公司还根据市场需求,不断优化产品结构,推出了多款具备自主知识产权的特色产品,如宽压DC-DC模块电源、光伏电源等,深受市场欢迎。

冠图电子(GTL-POWER)发展故事之三:技术突破与行业标准

冠图电子在技术创新方面不断取得突破,陆续开发了多款具有行业领先水平的电源产品。例如,公司成功开发出小型全功能单列直插DC-DC模块电源,解决了传统电源体积大、效率低的问题。此外,冠图电子还积极参与行业标准的制定工作,通过技术创新推动整个电源行业的发展。这些努力不仅提升了公司的行业地位,还为客户提供了更加可靠、高效的电源解决方案。

冠图电子(GTL-POWER)发展故事之四:品质管理与国际认证

为了确保产品质量,冠图电子建立了严格的质量管理体系,并通过了ISO9001权威认证。公司注重生产过程的每一个环节,从原材料采购到成品出厂都实行严格的质量控制。这种对品质的执着追求使得冠图电子的产品在市场上赢得了良好的口碑,吸引了来自全球30多个国家的600多家客户。国际市场的认可不仅提升了公司的品牌形象,还为公司带来了更多的业务机会。

冠图电子(GTL-POWER)发展故事之五:客户服务与持续发展

冠图电子始终坚持以客户为中心的服务理念,为客户提供从项目咨询、系统设计到技术支持的一站式服务。公司拥有一支专业的客服团队,能够迅速响应客户需求并提供专业的解决方案。此外,冠图电子还注重与客户的长期合作,通过持续改进产品和服务来满足客户的不断变化的需求。这种以客户为导向的发展策略使得冠图电子在激烈的市场竞争中保持了稳步发展,并逐渐成长为一流的微功率模块电源、定制电源供应商。

CIRCUITCO公司的发展小趣事

CIRCUITCO公司自创立之初,就致力于电子电路技术的研发。在某一时期,公司投入大量资源研发新型高性能电路板。经过数年的努力,团队终于成功开发出一款具有更高集成度、更低能耗的电路板。这一突破不仅提升了公司的技术实力,也使其在市场上获得了显著的竞争优势。随着这款新产品的推出,CIRCUITCO公司的业绩迅速攀升,成为行业内的佼佼者。

AUREL公司的发展小趣事

在追求经济效益的同时,AUREL公司也积极履行社会责任。公司注重环保和可持续发展,在生产过程中采用环保材料和节能技术,努力降低对环境的影响。此外,公司还积极参与社会公益事业,为当地社区的发展做出了积极贡献。这些举措不仅提升了AUREL公司的社会形象,也增强了公司的凝聚力和向心力。

请注意,以上故事是基于虚构的,旨在展示一个电子行业公司可能的发展路径和成就。如果您需要关于AUREL公司的具体信息或发展故事,建议直接查阅该公司的官方网站或相关新闻报道。

静芯微电子(ElecSuper)公司的发展小趣事

静芯微电子深知产品质量对于企业的重要性,因此建立了完善的质量管理体系。公司从原材料采购、生产制造到产品检测等各个环节都实行严格的质量控制和管理,确保每一款产品都符合高标准的质量要求。同时,静芯微电子还引进了先进的检测设备和技术手段,对产品质量进行全面检测和评估。这些措施保证了静芯微电子产品的稳定性和可靠性,赢得了客户的信任和好评。

Deutsch公司的发展小趣事

为了进一步扩大市场份额,Deutsch公司开始积极寻求国际合作和市场扩张的机会。公司首先通过市场调研,确定了目标市场,并制定了详细的市场拓展计划。随后,通过与当地合作伙伴建立合作关系,Deutsch公司成功进入了新兴市场。在国际市场上,公司凭借其高品质的产品和优质的客户服务,赢得了客户的信任和认可。这些努力使得Deutsch公司的市场份额逐年上升,成为电子行业的领军企业之一。

AXTAL公司的发展小趣事

创新是AXTAL公司不断发展的动力源泉。公司注重研发投入,持续推出具有竞争力的新产品和技术。同时,AXTAL还积极与高校、科研机构等合作,共同开展前沿技术的研发和应用。这些创新举措不仅提升了公司的技术实力和市场竞争力,也为整个电子行业的发展注入了新的活力。

这五个故事只是AXTAL公司发展起来历程中的一部分。它们从不同的角度展示了公司在创立、技术与品质追求、全球布局、应对市场挑战以及持续创新等方面所取得的成就和进步。未来,随着电子行业的不断发展和变革,相信AXTAL公司将继续保持其领先地位,为行业的进步和发展做出更大的贡献。

问答坊 | AI 解惑

求模拟电路的受干扰机理-----------谢谢

求模拟电路的受干扰机理-----------谢谢…

查看全部问答>

菜鸟求教:EM78P447SAPJ是做什么的?

     我一点不懂硬件,查一个叫EM78P447SAPJ的芯片,请问这是单片机吗?这是做什么的?请把功能说清楚.…

查看全部问答>

在51系列单片机上移植uCOS-II.pdf

在51系列单片机上移植uCOS-II.pdf…

查看全部问答>

【奇趣51DIY】之1——LC测量小工具(03月01日-04月10日)

经过了 寻人帖 和 意见征集,我们的『51DIY』活动已经引起了一部分坛友的热切关注,一周过去了,急不可待的你是否早已跃跃欲试? 今天开始,我们就要真正开始我们的DIY活动了!DIY第一波:LC测量小工具。这是在上一周的意见征集贴里,由quanzx大叔 ...…

查看全部问答>

关于cortex-M3中断优先级如何使用的解答

最近在帖子上看到有童鞋在问关于M3的优先级的问题,很多人都不太了解IntPriorityGroupingSet()和IntPrioritySet()的用户, 这里整理了一篇关于中断优先级的文章,请大家仔细阅读,如果还有不懂的,请与我联系。     qq:9064114 ...…

查看全部问答>

How to make a linux logo on AM335X中文手册

How to make a linux logo on AM335X中文手册…

查看全部问答>

基于MSP430单片机的节能型路灯

本系统通过太阳能电池板配合升压稳压模块将太阳能转换为电能储存在电池中;光敏模块判断白天黑夜;热释电模块判断是否有人经过路灯;驱动模块驱动大功率LED;MSP430单片机通过控制输出PWM的占空比来控制大功率LED的亮度。整个系统可以实现利用太阳 ...…

查看全部问答>

让人抓狂的430购买经历。。。。

想用MSP430F5529做点小玩意玩玩,当然不是样品啦,准备小批量一点,嘿嘿。。。。但这次经历着实让我抓狂了一把。。。。         首先联系的当然是安富利,比较它比较大嘛。价格给的还是蛮合适的,但是要求出具公 ...…

查看全部问答>

ISD4004模块播放

我是想说啊,ISD4004播放的时候不是找到对应的地址就播放了吗?如果不给他停止程序的话是不是就会一直播放下去?如果想要播放完那段就继续其他别的操作要怎么做?求指教!…

查看全部问答>