历史上的今天
返回首页

历史上的今天

今天是:2025年06月06日(星期五)

正在发生

2020年06月06日 | STM32库函数和寄存器的区别

2020-06-06 来源:eefocus

库函数版和寄存器版的系统时钟设置的区别:

**1.**库函数的目的是让用户应用的,而寄存器更加原始


库函数的系统时钟是默认设置的,且放在启动文件里。而寄存器版的系统时钟是Stm32_Clock_Init(336,8,2,7);.


**2.**库函数的快捷的,但不是每个芯片都有的;寄存器是复杂的,但是每个芯片厂商都有提供系统的寄存器设置信息。


分别打开库函数和寄存器版的I/O口设置:

库函数:

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);gotoh后先通过assert_param();函数检查格式是否正确同时只要是ENABLE,RCC->AHB1ENR |= RCC_AHB1Periph;接着给对应的寄存器赋值。


寄存器:

RCC->AHB1ENR|=1<<0; //使能PORTA口时钟 (就一句赋值语句就行了)。


从这里也可以看出寄存器的第二个区别是(打个比方,做为嵌入式开发我们经常会用到电子元器件,这是我们有两个选择一是在淘宝直接买一个模块,二是在在淘宝买这个模块的对应的元器件然后自己焊接)这个就可以看出通过寄存器的设置确实有利于理解对应的工作原理,而且对于简单的应用来说,确实很快捷。但是随着你做的东西越来越多,越来越复杂,就无暇顾及每一个功能模块的具体运行情况,这时一般的话会在网上直接买对应的模块,然后利用串口,iic,spi等通信方式进行获取对应的数据即可。这时,我在想学习寄存器目的就是为了更快理解一个新的芯片。


3.在程序上的区别(以正点原子的程序为分析对象)

a.下图是STM32正点原子的led的初始化程序,直到今天我才发现有中的是正点原子公司写的。里面的结构体,使能时钟函数,I/O设置位等函数都是ST公司写的。调用是st的固件库。

STM32正点原子led等初始化程序
在这里插入图片描述

上图的stm32f4xx_gpio.h等头文件其实就是库函数的来源。正点原子的“库函数”是实际应用的函数,是放在HARDWARE文件夹里。


**b.**下面的图是寄存器板的led初始化函数,这些函数是正点原子写的,可谓是需要什么就写什么函数,大大的提高了程序的运行效率。(只引用stm32f4xx_.h)

在这里插入图片描述在这里插入图片描述

推荐阅读

史海拾趣

德索五金(dosinconn)公司的发展小趣事
安森德(Ascend)公司的发展小趣事

随着产品技术的成熟,安森德公司开始积极拓展市场。公司凭借优质的产品和服务,成功进入工业电源、电机驱动、消费电子等多个领域。同时,安森德积极寻求与全球顶尖企业的战略合作,通过与这些企业的技术交流和业务合作,不断提升自身的技术水平和市场竞争力。这些合作不仅为安森德带来了更多的商业机会,也进一步提升了公司在行业内的知名度和影响力。

Cosel公司的发展小趣事

在电子行业,技术创新是企业发展的关键。Cosel公司深知这一点,因此在发展过程中不断引进先进的技术和管理理念。1979年,公司引进了质量控制圈(QC circle)活动,通过全员参与的方式提高产品质量和客户满意度。随后,公司又引进了TQC(全面质量管理)和方针管理,进一步提升了企业的运营效率和产品质量。这些举措使得Cosel公司的产品在市场上获得了良好的口碑。

Glorious Sources Co Ltd公司的发展小趣事
用于监测环境中的光强度变化,如监测室内光线变化以自动调节窗帘或灯光亮度。
EF Johnson Technologies Inc公司的发展小趣事

作为一家具有社会责任感的企业,EF Johnson公司始终关注环境保护和社会公益。公司积极响应国家节能减排政策,采用环保材料和清洁能源进行生产活动。同时,EF Johnson还积极参与社会公益活动,捐赠资金和物资支持教育事业和贫困地区的发展。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实基础。

Highland Electronics Co Ltd公司的发展小趣事

在追求技术创新和商业成功的同时,High Tech Chips Inc还积极践行环保和可持续发展理念。公司致力于开发绿色、低碳的芯片产品和技术解决方案,减少生产过程中的能源消耗和环境污染。同时,公司还积极参与社会公益活动,支持教育、环保等领域的项目发展。这些举措不仅提升了公司的社会形象和品牌价值,也为公司的长远发展注入了新的动力。

请注意,以上故事均为虚构内容,旨在展示电子行业高科技芯片公司可能的发展路径和策略。在实际情况中,不同公司的发展故事会因其独特的背景、资源和市场环境而有所不同。

问答坊 | AI 解惑

80C51复位标志位的设置与应用研究

引言        设置复位标志位便于区分不同原因引发的复位,作为一种新技术被越来越多的新型单片机所采纳。例如Philips公司的P87LPC700和P89LPC900系列、Freescale公司(原Motorola半导体部)的MC68HC05系列和MC68HC08系 ...…

查看全部问答>

SD卡读数据时不返回0xFE

各位高手, 我用SPI方式跟SD卡通信时,能正常初始化,往SD卡发送1个块的数据时,能正常返回0x05,但读数据时,就是无法返回0xFE,请问大概是什么问题? 谢谢!…

查看全部问答>

嵌入式毕业设计

要做毕业设计了,我想做嵌入式方向的,软件多一点, 请大家给我提点建议,做什么方向?什么题目? 顺便问问,arm + linux 应用多不多?是不是像华为这些个公司才用(听说 是开发周期太长)…

查看全部问答>

Sql CE数据库的一个数据表最多可放多少条数据?

    在向Sql CE数据库插入数据时,插入到27万条时,就不行了,有哪位朋友做过这方面的测试或是应用,请告知一声。     现在怀疑有两个可能产生该问题的原因:     第一个:Sql CE数据库表的上限就是那么多(27万) ...…

查看全部问答>

给初学单片机的40个实验(前35个)

给初学单片机的40个实验(前35个)…

查看全部问答>

关于MSP430FR57xx

德州仪器(TI)宣布推出业界首款超低功耗铁电随机存取存储器(FRAM)16位微控制器,从而宣告可靠数据录入和射频(RF)通信能力进入了一个新时代。   新型 MSP430FR57xx FRAM 系列的面市进一步彰显了 TI 在嵌入式处理技术领域的领先地位,与基于闪存和 ...…

查看全部问答>

9B96下载不进去

芯片版本 LM3S9B96  IQC80C3XD  开发环境IAR版本5.4  警告信息   Thu Dec 15 17:09:18 2011: Warning:  Verify error at address 0x00001000, target byte: 0x70, byte in file: 0x00 Verify error at address 0x0 ...…

查看全部问答>

嵌入式处理器的技术指标及选型原则

  嵌入式处理器的技术指标   (1)功能:处理器的种类、外部接口的种类和数量,集成的多需要外围扩展的就少,可靠性高成本低。根据系统的需要尽量选择集成所需接口种类和数量的处理器。   (2)字长:参与运算的数的基本位数,决定于寄存器、 ...…

查看全部问答>

SMU、TSP™、TSPLink如何加速2600系列数字源表?

吉时利公司的最新高度源-测量单元(SMU)[1]、嵌入式测试脚本处理器(TSP™)以及TSPLink总线为2600系列数字源表提供满足最苛刻吞吐量要求所需的速度。 测试脚本处理器是一种可扩展的嵌入式计算机。TSP-Link是内部设备通信与触发同步总线—— ...…

查看全部问答>