文件名称:程序运行占用资源少-基于hmm的语音识别系统的matlab仿真
文件大小:29.31MB
文件格式:PDF
更新时间:2024-07-31 04:45:11
STM32 F103
9.2 为什么采用库来开发及学习? 在以前 8 位机时代的程序开发中,一般直接配置芯片的寄存器,控制芯片的工作方式, 如中断,定时器等。配置的时候,常常要查阅寄存器表,看用到哪些配置位,为了配置某 功能,该置 1还是置 0。这些都是很琐碎的、机械的工作,因为 8位机的软件相对来说较简 单,而且资源很有限,所以可以直接配置寄存器的方式来开发。 对于 STM32,因为外设资源丰富,带来的必然是寄存器的数量和复杂度的增加,这时 直接配置寄存器方式的缺陷就突显出来了: (1) 开发速度慢 (2) 程序可读性差 (3) 维护复杂 这些缺陷直接影响了开发效率,程序维护成本,交流成本。库开发方式则正好弥补了 这些缺陷。 而坚持采用直接配置寄存器的方式开发的程序员,会列举以下原因: (1) 具体参数更直观 (2) 程序运行占用资源少 相对于库开发的方式,直接配置寄存器方式生成的代码量的确会少一点,但因为 STM32 有充足的资源,权衡库的优势与不足,绝大部分时候,我们愿意牺牲一点 CPU 资 源,选择库开发。一般只有在对代码运行时间要求极苛刻的地方,才用直接配置寄存器的 方式代替,如频繁调用的中断服务函数。 对于库开发与直接配置寄存器的方式,就好比编程是用汇编好还是用 C 好一样。在 STM32F1 系列刚推出函数库时引起程序员的激烈争论,但是,随着 ST 库的完善与大家对 库的了解,更多的程序员选择了库开发。现在 STM32F1 系列和 STM32F4 系列各有一套自 己的函数库,但是它们大部分是兼容的,F1和 F4之间的程序移植,只需要小修改即可。而 如果要移植用寄存器写的程序,那简直跟脱胎换骨差不多。 用库来进行开发,市场已有定论,用户群说明了一切,但对于 STM32 的学习仍然有人 认为用寄存器好,而且汇编不是还没退出大学教材么?认为这种方法直观,能够了解到是 配置了哪些寄存器,怎样配置寄存器。事实上,库函数的底层实现恰恰是直接配置寄存器 方式的最佳例子,它代替我们完成了寄存器配置的工作,而想深入了解芯片是如何工作的 话,只要直接查看库函数的最底层实现就能理解,相信你会为它严谨、优美的实现方式而 陶醉,要想修炼C语言,就从 ST的库开始吧。所以在以后的章节中,使用软件库是我们的 重点,而且我们通过讲解库 API去高效地学习 STM32 的寄存器,并不至于因为用库学习, 就不会用寄存器控制 STM32 芯片。 9.3 实验:构建库函数雏形 虽然库的优点多多,但很多人对库还是很忌惮,因为一开始用库的时候有很多代码, 很多文件,不知道如何入手。不知道您是否认同这么一句话:一切的恐惧都来源于无知。 我们对库忌惮那是因为我们不知道什么是库,不知道库是怎么实现的。