SystemInit()函数在主程序中被RCC_Configuration()函数调用,完成系统时钟的配置功能。我看过这个函数的具体内容,是直接 *** 作寄存器来完成配置。如果使用stm32f10x_rccc文件中的函数来完成时钟配置,和SystemInit()的顺序和效果一样。
当然,为了保证兼容性,使低版本固件库写的程序运行,就还有stm32f10x_rccc存在,像早期版本的RCC_Configuration()函数就是使用这个文件中提供的函数来完成时钟配置的。
补充:是的,Systeminit()函数完成了时钟初始化的功能。另外systick的使用也变简单了,以前要几个函数完成初始化,现在只要一个就行。
你看看30版本固件system_stm32f10xc中的代码是怎样的吧。其中是对RCC寄存器直接赋值 *** 作,和stm32f10x_rccc中相关的函数作用一样。
如果在程序中要使用端口、外设等,由于这些东西需要时钟才能工作,所以还是需要stm32f10x_rccc中的函数来完成时钟的控制。不可以的,你要搞清楚这三个参数是什么,首先我们的设备每个i/o是有多个功能的,比如PA9 可以是USART、TIM 、I2C等,需要哪个功能时应该是填入这个函数
第一个是端口号,第二个是引脚源,第三个是功能对应寄存器(列标签)。
你想GPIO_PinAFConfig(GPIOC,GPIO_PinSource2,GPIO_AF_I2C1)。必须C2这个脚有I2C这个功能,而且填入参数应该是对应寄存器AF_X如果你想看DAC函数的话很简单,F1的话打开#include "stm32f10x_dach"中278行就有各种函数的声明,右键追踪到定义处就可以看到函数源码了,每一个函数上面都有非常详细的英文注释。英文吃力的话请再联系我。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)