Я пытаюсь узнать, как работает протокол SPI, и я работаю над базовым проектом с использованием платы STM32F407G-Discovery.
Эта плата имеет встроенный акселерометр (LIS3DSH) и использует протокол SPI.В руководстве пользователя указано следующее:
LIS3DSH имеет динамически выбираемую ± 2 г / ± 4 г / ± 6 г / ± 8 г / ± 16 г и способен измерять ускорение сВыходная скорость передачи данных от 3,125 Гц до 1,6 кГц.
Этот акселерометр использует SPI1, который подключен к APB2.Я использую STM32CubeMX для генерации кода инициализации (включая конфигурацию часов), и похоже, что периферийные часы APB2 имеют значение по умолчанию 84 МГц.
Означает ли это, что мне нужно настроить периферийные часы APB2 таким образом, чтобы они находились в диапазоне от 3,125 Гц до 1,6 кГц?Я не могу себе представить, что это правда, потому что я не могу получить значение достаточно низкое в STM32CubeMX, так как оно выдает ошибку, если я иду слишком низко.
Я также учитываю регистр SPI управления скоростью передачи, который позволяет вам достигать f-PCLK/256
.
Другими словами, я немного застрял на том, какую тактовую частоту использовать и какой контроль скорости передачи использовать.
Я все еще изучаю встроенное программирование, поэтому моя терминология может быть неверной.