• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

stm32的两种学习方法的优缺点比较

new world 2017-07-19 浏览量:1560

​  stm32的使用方法有两种,一种是使用库函数,另一种是使用寄存器的方式。我想问一下这两种方式的优缺点?还有哪一个更加适合学习,用途较广?

-1 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 首先,两个都是C语言。
    从51过渡过来的话,就先说寄存器操作。每个MCU都有自己的寄存器,51是功能比较简单的一种,相应的寄存器也比较少,我们常用的就那么几个,像P0 P1 SMOD TMOD之类的,这些存在于标准头文件reg.h里面,因为少,所以大家就直接这么去操作了,每一位对应的意义随便翻一下手册就看得到,甚至做几个小项目就记的很清楚了。所以做51开发的时候大多数都是直接操作寄存器。
    到了STM32,原理一样,也是有自己的寄存器,但是作为一款ARM内核的芯片,功能多了非常多,寄存器自然也就多了很多,STM32的手册有一千多页,这时候想去像51那样记住每个寄存器已经不现实了,所以ST的工程师就给大家提供了库函数这么一个东西。
    这是个神器。
    库函数里面把STM32的所有寄存器用结构体一一对应并且封装起来,而且提供了基本的配置函数。我们要去操作配置某个外设的时候不需要再去翻眼花缭乱的数据手册,直接找到库函数描述拿来就可以用,这样就能把精力放在逻辑代码的开发上,而不是去费力的研究一个芯片的外设要怎么配置寄存器才能驱动起来。
    简单讲就是这些了,库函数是为了让开发者从大量繁琐的寄存器操作中脱离出来的一个文件包,在使用一个外设的时候让开发者直接去调用相应的驱动函数而不是自己去翻手册一个一个配置寄存器。
    有人说用库函数掌握不到芯片的精髓,见仁见智了。熟悉一款芯片是在不断的开发使用中逐渐了解并掌握的,调试的过程中会遇到很多问题,会要求我们去跟踪相关寄存器的状态,在整个框架都已经建立起来的基础上再去对照手册做具体到寄存器每一位的分析,代码对照现象,很快就能积累起来经验,祝成功。
    • 发布于 2017-07-19
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:4
  • 学习的话,寄存器对于芯片结构理解更深,使用的话还是库函数比较方便好用


    • 发布于2017-07-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 现在用寄存器去写程序的比较少了,库函数才是主流

    原因:

    1、ST的HAL库太过强大,基本涵盖了芯片上面的所有资源,而且调用简单

    2、ST官方有个STM32cubemx来辅助库函数,而且还能整合Freertos、fatfs、emwin等几个经典​操作系统

    3、寄存器使用太过麻烦,需要经常去查寄存器表格

    综上,建议你还是使用库函数,不过如果你想了解一些芯片底层的知识,学一下寄存器也无妨

    • 发布于2017-07-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 刚开始学习用库,如果一开始就上寄存器,你更本没有继续学下去的兴趣,因为他寄存器实在是太多了,等你用过一段时间,对库开发都了解了再来看看寄存器。
    • 发布于2017-07-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 庫函數應該是指舊的標準庫和HAL庫

    比起操作Register有幾項好處

    1. 直觀好理解

    2. 易於使用

    3. 易於Trace和Debug

    4. 如同Asm code和C code的差異

    供參考

    • 发布于2017-07-20
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

stm32的两种学习方法的优缺点比较