HC-SR04 with WeAct Black Pill STM32F411CE

Wiring for the HC-SR04 ultrasonic distance on the WeAct Black Pill STM32F411CE (STM32F411CE, 3.3 V logic), chosen with the same pin rules BoardPilot uses: default buses first, and no pins that are used for flash, USB, the debugger or booting.

Wiring

HC-SR04 pinRoleWeAct Black Pill STM32F411CE pinNotes
VCCPower5VNeeds 5 V: use 5V
TRIGInput to the partB12 (PB12)A 10 µs HIGH pulse starts a measurement
ECHOOutput from the partB13 (PB13)
GNDGroundG

Check before you power it on

Test code (Arduino)

void setup() {
  Serial.begin(115200);
  pinMode(PB12, OUTPUT);  // TRIG on B12
  pinMode(PB13, INPUT);   // ECHO on B13
}

void loop() {
  digitalWrite(PB12, LOW);  delayMicroseconds(2);
  digitalWrite(PB12, HIGH); delayMicroseconds(10);
  digitalWrite(PB12, LOW);
  long us = pulseIn(PB13, HIGH, 30000);
  Serial.println(us / 58.0);  // distance in cm
  delay(200);
}

Arduino board: STMicroelectronics:stm32:GenF4:pnum=BLACKPILL_F411CE,usb=CDCgen,upload_method=dfuMethod. To upload over USB, hold BOOT0, press and release NRST, then release BOOT0 (DFU mode). An ST-LINK on the SWD pins also works.

Questions

Which WeAct Black Pill STM32F411CE pins do I use for the HC-SR04?

VCC → 5V, TRIG → B12 (PB12), ECHO → B13 (PB13), GND → G.

Does the HC-SR04 work with the WeAct Black Pill STM32F411CE at 3.3 V?

Yes: the HC-SR04 runs at 5 V and the WeAct Black Pill STM32F411CE uses 3.3 V signals, so no level shifting is needed.

BoardPilot checks this wiring in 3D as you build it, and finds crossed or missing wires on the real board.

Download BoardPilot

Full WeAct Black Pill STM32F411CE pinout · HC-SR04 ultrasonic distance: all pins and data

The HC-SR04 on other boards

Other parts on the WeAct Black Pill STM32F411CE