|
【背景】 使用STM32F103ZET6的片子。 基于STM32F10x_StdPeriph_Lib_V3.5.0的标准库样例程序,目前已经可以使用SPI,和TI的ADS8688进行配合工作了,使用的SCK是9M。 但后续因为采用率的要求,需要将SCK提高到16M等(TI ADS8688的最高工作频率是17M)。 虽然可以通过修改SPI配置中的分频系数,来提高SCK到18M,但这样就超过ADS8688的最高工作频率了,会使得数据不对。 【问题】 (1) 请问除了通过SPI设置中的分频系数,还有其它办法来更改SCK吗?(如果能更改为16M甚好); (2) 目前了解下来,通过SPI设置中的分频系数,只能得到少数几种可能的SCK。是否有其它思路和办法,可以获得更多种SCK频率? 谢谢 目前程序中时钟,和SPI的设置如下:(晶振8M) --------------------------------------------------------------------------------------------------- void RCC_Configuration(void) { /* PCLK2 = HCLK/2 */ RCC_PCLK2Config(RCC_HCLK_Div2); /* Enable SPI Master peripheral clocks --------------------------------------------------*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_SPI1, ENABLE); } /* SPI_MASTER configuration ------------------------------------------------*/ SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;; SPI_InitStructure.SPI_Mode = SPI_Mode_Master; SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b; SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low; SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge; SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_4; SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; SPI_InitStructure.SPI_CRCPolynomial = 7; SPI_Init(SPI1, &SPI_InitStructure); |
在擦除flash时 同时挂起中断 是否会造成卡死以及相关的卡死机制
FLASH擦除轮询等待时CPU真的会轮询吗
HAL_I2C_Mem_Read 一直返回 BUSY
STM32F103C8T6 上电后无法通过串口发出数据的问题?
KEILMDK每次都要手动选Reset and Run吗 不然下载到板子上得重启电源才行 求解答
STM32H563的QSPI接口不能读取W25Q256的后128MB数据
STM32C5 HAL SPI CRC 错误无法触发错误回调
HAL 库建议支持GPIO 同时配置为AF 与外部中断 EXTI
STM32F103的USB的虚拟串口,串口助手打开的时候会收到两条数据,第一条数据是前5秒串口助手未打开时发送的,这怎么解决?
询问电源纹波对芯片的影响
微信公众号
手机版
更换晶振,主要目的是可以将主频更改、比如改到64M,然后就可以在SPI中进一步设置SCK为16M了吧?(如果是的话,这样主频降到64M,也会到导致代码执行变慢的吧?)
谢谢,
那是一定的,看影响有多大了
好的,感谢提示了。前面直接用标准库试了下,感觉还是不太好弄。看来后面还是要去学学CubeMx。