软件开发最重要的是会使用库,库里面有很多已经写好了的函数,这些函数的功能其实已经早就从底层对寄存器的操作进行了相应的封装了,而stm32的开发也是类似软件开发,将stm32的底层对大量的寄存器操作进行了封装,只要直接根据这些函数的使用就可以实现这些寄存器的综合配置,从而达到最终的效果。
stm32的寄存器之多,跟51不是一个级别的,而且由于32位的寄存器的配置是一件非常头疼的事情,如果每次使用一个寄存器都需要对一个32位的寄存器进行配置,那大型的项目,就成为一件非常恐怖的事情。所以引入库这种概念是非常有用的,而stm32的库可以在不用对寄存器的配置十分熟悉的情况下进行快速的编程配置,实际上库函数就是人家帮我们做了底层封装而已,没什么神秘的,这个完全是体力活。我们无需做上面重复的劳动。
STM32F10xD.LIB是调试库,STM32F10xR.LIB是发行库,两者有什么区别呢?
STM32F10xD.LIB带了调试信息输出的,我们来看看库源文件在ST官方的STM32的库函数里有很多assert_param函数几乎是带参数的函数前面都有调用assert_param实际这是个调试函数,当你在调试程序时打开DEBUG参数assert_param才起作用。assert_param是反映参数你在调用库函数传递的参数是错误的。assert_param的原型定义在stm32f10x_conf.h 文件里。