mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-26 01:35:41 +03:00
Run SPI FLASH at full speed
This commit is contained in:
parent
60c008b20b
commit
41a0ca43d1
39 changed files with 276 additions and 193 deletions
|
@ -240,6 +240,25 @@ void spiBusSetInstance(busDevice_t *bus, SPI_TypeDef *instance)
|
|||
bus->busdev_u.spi.instance = instance;
|
||||
}
|
||||
|
||||
uint16_t spiCalculateDivider(uint32_t freq)
|
||||
{
|
||||
#if defined(STM32F4) || defined(STM32G4) || defined(STM32F7)
|
||||
uint32_t spiClk = SystemCoreClock / 2;
|
||||
#elif defined(STM32H7)
|
||||
uint32_t spiClk = 100000000;
|
||||
#else
|
||||
#error "Base SPI clock not defined for this architecture"
|
||||
#endif
|
||||
|
||||
uint16_t divisor = 2;
|
||||
|
||||
spiClk >>= 1;
|
||||
|
||||
for (; (spiClk > freq) && (divisor < 256); divisor <<= 1, spiClk >>= 1);
|
||||
|
||||
return divisor;
|
||||
}
|
||||
|
||||
void spiBusSetDivisor(busDevice_t *bus, uint16_t divisor)
|
||||
{
|
||||
spiSetDivisor(bus->busdev_u.spi.instance, divisor);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue