// STM32F103C8 Blue Pill
// HC-SR04 Ultrasonic Sensor + UART
//
// HC-SR04 TRIG -> PA1
// HC-SR04 ECHO -> PA0
// USART1 TX -> PA9
// USART1 RX -> PA10
// UART Baud Rate = 115200
#define TRIG_PIN PA1
#define ECHO_PIN PA0
void setup()
{
// Ultrasonic pins
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
// Start UART
Serial.begin(115200);
delay(500);
Serial.println("STM32 ULTRASONIC SENSOR");
Serial.println("Baud Rate: 115200");
Serial.println("------------------------------");
}
void loop()
{
// Make sure trigger starts LOW
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
// Send 10 microsecond trigger pulse
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// Measure echo pulse
long duration = pulseIn(ECHO_PIN, HIGH);
// Calculate distance in centimeters
float distance = duration * 0.0343 / 2.0;
// Print distance
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
delay(1000);
}Loading
stm32-bluepill
stm32-bluepill