So you’ve installed STM32CubeIDE (a.k.a. “Cube” or “the IDE”) and you’ve got a board with an STM32 on it. Time to get coding ! This page about setting up a project : the project itself is unimportant, so we’ll go with blinking an LED. That’s the “Hello World” of the microcontroller world.
Of all the things you can program, microcontrollers are the least friendly. They have no interface that a human can use. That is regrettable, especially when trying to get some feedback from your code during development. A simple LED connected to an I/O pin can already be used to provide a lot of feedback with very little hardware (and code) but it’s a very limited option. Luckily, there are lots of inexpensive display modules out there than can do a lot more than turn on and off. They do require significantly more code to operate, however. Let me help you with that.
The STM32H750 is an interesting MCU : at 480 MHz it’s one of the fastest Cortex-M7 devices in existence but it’s also one of the least complicated because it only has one core. That also makes it cheap. And this makes it a very good chip to be proficient with.
The H7 family of STM32 microcontrollers is, as of 2021, the most badass there is. It is based on the ARM Cortex-M7F core running at up to 550 MHz, with some chips in the family equipped with a second ARM Cortex-M4F core running at 240 MHz. How powerful is that ? Well, back when I was a kid, PC’s were equipped with Pentium MMX processors which could barely hit 200 MHz… and that was enough to run Windows 95 and first-person shooter games like Doom and Quake.
The Jetson Nano is not as easy to setup as a Raspberry Pi. There isn’t a “NOOBS” SD card you can buy, stick into your Nano and be done. But then again, this ain’t a Raspberry Pi : if you’re playing with a Jetson Nano you obviously intend to work on stuff that’s too hardcore for a Raspberry Pi, and therefore it’s safe to assume you’re not afraid of the command line prompt.
In our previous episode, we’ve spent an unhealthy amount of time in front of a computer crafting some arcane USB code. Today, we finish what we started and finally get our STM32 to talk with a USB host.