STM32F373单片机我想把8M晶振换成16M晶振,需要改动哪些地方
2个回答
展开全部
1,所有定时器的时钟和定时值,你的系统时钟变了,而定时器时钟是系统时钟分频来的,所以定时基数也变了,你需要重新设定定时器的工作。
2,软件中的‘delay()’延时,因为你的系统时钟变了,所以代码运行的每个系统周期变短,而有些地方需要这些延时,延时变短会导致工作异常。
3,串口外设“Uart,SPI,I2C”等,这些外设都是由系统时钟分频得来,你需要重新更改分频系数,使时钟跟之前的保持相同,或者兼容。
4,如果你不想那么麻烦,那你更改系统时钟配置,如果寄存器可以设置系统时钟为外部时钟的1/2也行,那么你的系统时钟就变成了16/2=8M,跟之前的系统时钟相同,那么你上面的或许可以不用更改(如果上面的时钟都是你系统时钟分频的话)。
2,软件中的‘delay()’延时,因为你的系统时钟变了,所以代码运行的每个系统周期变短,而有些地方需要这些延时,延时变短会导致工作异常。
3,串口外设“Uart,SPI,I2C”等,这些外设都是由系统时钟分频得来,你需要重新更改分频系数,使时钟跟之前的保持相同,或者兼容。
4,如果你不想那么麻烦,那你更改系统时钟配置,如果寄存器可以设置系统时钟为外部时钟的1/2也行,那么你的系统时钟就变成了16/2=8M,跟之前的系统时钟相同,那么你上面的或许可以不用更改(如果上面的时钟都是你系统时钟分频的话)。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询