本人设计单片机有10多年的经验了,从stm32出来到现在也一直在用,我还是认为用寄存器版本比较好,比较灵活,有好多人说直接用库函数方便,方便是方便,当你搞大型程序的时候就知道了,问题一大堆你找都不知道去哪里找,因为你不懂库函数里面的东西,库函数不是你写的。有好多配置库函数是没有给修改入口的。什么adc的缓冲呀!等等。所以建议你还是用寄存器版本为好
是的,只有四个。为什么对应16个EXTI呢?因为你没看AFIO_EXTICRx(x=1-4)的寄存器示意图,对于每个AFIO_EXTICR寄存器,15:0位对应了四个EXTI,所以一共是16个。详细示意图可参考STM32参考手册843节。
这函数实际是完成AFIO->MAPR寄存器的配置,我就是嫌这代码写的太烦了,所以直接对寄存器进行 *** 作。比如将串口2重映射时,就是:
AFIO->MAPR|=GPIO_Remap_USART2;
要取消重映射,就是:
AFIO->MAPR&=~GPIO_Remap_USART2;
GPIO_Remap_USART2在stm32f10x_GPIOh中是有定义的,AFIO->MAPR寄存器各个位的定义在参考手册中有详细描述。
建议使用库函数,容易上手,出现问题也方便查找。当然也可以不适用库函数,现在也流传着一些库函数出来之前使用寄存器 *** 作的代码。STM32的库函数相当于把手动挡汽车升级为了手自一体,你要是想练习技术,了解底层使用寄存器不适用库函数也是可以的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)