两者比较,前者的优点是库函数命名更直观易懂、对于初学者基本应用来说更简便、某些情况下标准化程度更高一点点,缺点是代码空间效率不高、不能实现非标准化的 *** 作。
库函数不是万无一失的。某些库函数bug重重还不如自己写……
不是要背库文件,而是要理解每个外设的功能,库函数只是说把 *** 作寄存器的代码封装成了函数;这些函数不用背,背了也没什么用。主要学习怎么配置各个外设的参数,和怎么配置的,这才是学习的重点;库函数是一个糖衣炮d,有好处也有坏处;好处是代码整齐了,坏处是把底层隐藏了;我们要学的精髓就是隐藏的那一部分。我最开始学的时候直接写的寄存器,没有用库函数;所以重在理解,不是背诵。
这函数实际是完成AFIO->MAPR寄存器的配置,我就是嫌这代码写的太烦了,所以直接对寄存器进行 *** 作。比如将串口2重映射时,就是:
AFIO->MAPR|=GPIO_Remap_USART2;
要取消重映射,就是:
AFIO->MAPR&=~GPIO_Remap_USART2;
GPIO_Remap_USART2在stm32f10x_GPIOh中是有定义的,AFIO->MAPR寄存器各个位的定义在参考手册中有详细描述。
同于stm32功能强大,内部寄存器太多,直接 *** 作寄存器比较复杂,因此生产厂商针对其功能,编写一系列子函数供调用,就是库函数,对于大多数使用者来说,使用库函数比直接 *** 作寄存器要高效得多。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)