开发STM32就不应该忽略函数库,尽管函数库的使用效率还有待提高。
尤其对于初学者,使用函数库可以尽快的驱动外设,避免直接读写繁多的寄存器,毕竟ARM的寄存器比51单片机多的多。
当然,函数库的执行效率比直接操作寄存器要差的远,那是否就应该摒弃函数库呢?我觉得也不尽然,函数库归根结底也是操作寄存器,和直接操作寄存器没有本质的区别。
函数库的使用效率低是因为系统调用函数的过程中涉及到上下文的切换等辅助操作,因此效率要低一些,因此在应用中对函数库进行针对性的修改是提高执行效率的必然措辞。
一:外设的初始化等操作尽量使用库函数,避免错误。
二:为了提高读写效率可以不用库函数而是直接操作寄存器,比如读GPIOD就可以直接写
tmp = *((unsigned long *)0x40011408); 或者 tmp = GPIOD->IDR ;
外设的地址可以在stm32_map.h中找到基地址,然后找到寄存器的偏移地址,这样就可以直接操作寄存器了。
|