Started 1st February 2016 - work in progress - correctness level low
The background to this page is my experience with the HC-SR04 ultrasonic ranging module using an ATMega 328p.
Having learnt to program the STM32F103C8T6 board with Arduino, I created some simple programs to use it with the HC-SR04. First with interrupts and then a timer capture register; the latter relies on the code from [1]. Compared to the ATMega 328p interrupt results are more stable.
There is the problem of matching the 5 V world of the HC-SR04 to the 3.3 V of the STM32. I started by using the safe option of a couple of FET level shifters[3].
- Archive of Arduino sketchbook ping32int - using interrupts- (1st February 2016)
- Archive of Arduino sketchbook ping32capture - using timer capture - (1st February 2016)
However a sketch to use the HC-SR04 is included with the STM32 addition to the Arduino IDE, it can be found here:
Arduino\hardware\Arduino_STM32\STM32F3\examples\f3_ultrasonic
or using the sketch menus to navigate to the same location.
I extracted the analogue final amplifier output signal from the HC-SR04 as described. To get the STM32 to digitise it I copied the ADC DMA code from [4].
- Maple frequency measurement - capture how to
- tone(), noTone() - timer device and channel from pin
- Bi-Directional MOSFET Voltage Level Converter 3.3V to 5V
- $10 O-Scope revisited - ADC code
- Spread Spectrum Phased Array Sonar