资深版主
 
- 积分
- 10565
- 金钱
- 10565
- 注册时间
- 2017-2-18
- 在线时间
- 1913 小时
|
之前有客户要用阿波罗F429修改SPI实验的SPI5的时钟为1.024M,但是这个值是算不出来的
所以算出了一个与之相近的时钟值:1.028M
在SPI 实验程序中Stm32_Clock_Init()用来设置系统主时钟 AHB、APB1、APB2的时钟
F429IGT6的时钟图见截图
阿波罗F429的HSE值是25M经过的倍频到所需要的系统主时钟
在阿波罗F429开发指南-HAL库版本有一个计算PLLCLK时钟的公式
我们这里设置N=432,M=41,P=2设置PLLCLK为131.707317M并将PLLCLK作为系统主时钟
[mw_shl_code=c,true]Stm32_Clock_Init(432,41,2,8); //设置时钟,131.707317Mhz[/mw_shl_code]
因为SPI5挂载在APB2下,所以我们设置AHB分频系数、APB1分频系数和APB2分频系数分别为1,4,2(该设置在Stm32_Clock_Init()中)
[mw_shl_code=c,true] RCC_ClkInitStructure.AHBCLKDivider=RCC_SYSCLK_DIV1;//AHB分频系数为1
RCC_ClkInitStructure.APB1CLKDivider=RCC_HCLK_DIV4; //APB1分频系数为4
RCC_ClkInitStructure.APB2CLKDivider=RCC_HCLK_DIV2; //APB2分频系数为2[/mw_shl_code]
所以APB2的时钟是65.853659M
经过SPI5_SetSpeed()函数设置分频系数为64便设置SPI5时钟为1.02896341M来实现与SPI FLASH通信
[mw_shl_code=c,true] SPI5_SetSpeed(SPI_BAUDRATEPRESCALER_64); //设置为1.02896341M时钟,低速模式[/mw_shl_code]
|
|