STM32duino & I2C

Подсоедините датчик к отладочной плате по следующей схеме:

VCC             5V
GND             GND
SCL             PB6
SDA             PB7

Теперь откроем тестовый скетч:

  • Нажмите «Файл», затем «Примеры > Adafruit BMP280 Library > bmp280test».

Чтобы выбрать интерфейс I2C и настроить использование правильных ножек микроконтроллера, найдите следующие строки:

//if (!bmp.begin(BMP280_ADDRESS_ALT, BMP280_CHIPID)) {
if (!bmp.begin()) {
  Serial.println(F("Could not find a valid BMP280 sensor, check wiring or "
                    "try a different address!"));
  while (1) delay(10);
}

и вызовите перед ними следующие функции библиотеки Wire:

  Wire.setSDA(PB7); // связываем сигналы с правильными ножками
  Wire.setSCL(PB6);
  Wire.begin();

  //if (!bmp.begin(BMP280_ADDRESS_ALT, BMP280_CHIPID)) {
  if (!bmp.begin()) {
    Serial.println(F("Could not find a valid BMP280 sensor, check wiring or "
                      "try a different address!"));
    while (1) delay(10);
  }

Ножки PB7 и PB6 связаны с сигналами SDA и SCL периферийного блока I2C1.

В зависимости от реализации конкретного модуля BMP280, вам, возможно, придется работать с ним по альтернативному адресу. Для этого переделайте

  //if (!bmp.begin(BMP280_ADDRESS_ALT, BMP280_CHIPID)) {
  if (!bmp.begin()) {

в

  if (!bmp.begin(BMP280_ADDRESS_ALT, BMP280_CHIPID)) {
  //if (!bmp.begin()) {

Мы готовы загружать скетч! Нажмите кнопку «загрузить», дождитесь окончания компиляции и загрузки, откройте Монитор порта. В нем вы должны увидеть примерно следующее:

Temperature = 24.08 *C
Pressure = 99341.86 Pa
Approx altitude = 166.43 m

Last updated