Looking for resources for learning STM32 from the ground up

I'm trying to learn to program STM32 microcontrollers for use in building video game controllers. I have some experience in the past with Arduino stuff, which has enormous amounts of guides and resources dedicated to building up an understanding from the ground up.

In STM32 all I have found to actually learn how to use it is 2600 page long documentation PDFs that seem to not really teach anything but maybe if you're lucky you stumble upon something useful. There's youtube videos but I have a hard time figuring out if they will work for my board or if some of the instructions only apply to the different board the person is using, etc. 75% of the time they are not even using the same set of software as I am.

Is there any good resources for STM32 or that kind of class of board to learn it ground up? Should I even be googling "STM32" or is that just one kind of board that's part of a large variety of chips that would be programmed the same way?

There are a couple of STM32 forums, but they are not particular popular with users of the Arduino IDE.

In my experience, the current implementation of the STM32 Arduino IDE is buggy, very slow, not well maintained and lacks library support for some of the associated hardware.

I'm going to be learning it in C with the STMcube IDE either way probably, just looking for advice on where to find good stuff here given the relatively huge popularity of arduino in general.

Which STM32? There's liable to be a big difference between one of the CM0 chips and one of the CM7 chips...

This was recommended http://bit.ly/1Rc1tMl (but it's pretty old, and covers the STM32F1xx)

I have some experience in the past with Arduino stuff

Do you have any significant experience with C other than the Arduino environment?

I started with STMcube and hated it. I'm told that in general(*), the free industry-supplied IDE's suck, and if you are serious about learning this stuff, to pay for one of the expensive professional IDEs.

(*) MPLAB is an exception. I've used it for many years.

If you are designing for video game controllers, Arduino IDE for STM32 won't cut it. People complain about Cube, but it's free. It's true that third party IDE's may be better, but Cube itself is miles beyond the Arduino adaptation, and I have a feeling from your introduction, that it's all you will need.

As far as the complaints about too much documentation... well... seriously? This is engineer level work.

STM32F103 something, one of the old ones. I am a chunk of the way through the K&R so I'm still new to C but I've used it a bit.

I get that it's engineer level work but I can't be reading through a 2600 page document looking for how to toggle a pin.

You have to start somewhere. There is an index.

Not to be preachy again, but that is the kind of thing engineers do. I'm not entirely sure which 2600 page document you are referring to, but if it is the typical PDF from STM, it has a clickable index. Also Cube comes with digital I/O examples. I had not only pin toggling, but PWM happening in less than a day of playing with that. Also the automatic code generation for peripheral configuration offered by CubeMX is nothing short of brilliant, you can click on a pin, make it an output, and MX will generate the setup code for it. As well as the fancier stuff like clocks and timers. It makes it a breeze compared with coding it manually. Disclaimer - I am not affiliated with STM.

They actually don't though usually unless they're looking for some specific function of a specific board. Presumably anyone working with these things as a job had either a class or book that more specifically taught the syntax of writing code with HAL, or GPIO, etc, without just looking every single individual thing in an enormous PDF and piecing together the entire structure of their knowledge by doing that. I have no problem looking through a big PDF if I need some specific timing routine or way of accessing a register inside of a specific board, but there is zero doubt in my mind there is 100 better ways of learning how to work with this kind of thing in the first place then combing through a giant PDF.

Seems like the book someone linked above is pretty solid though I'll give that a good look.

You haven't fully explored the STM ecosystem. There are official STM online and even video tutorials I think. It's just that they expect people who come looking to use this stuff to be experienced engineers. Those are the people that mostly purchase their products (especially in large quantities). There are no, say, "O'Reilly" books on the HAL and such because it is a niche skill.

I kinda figured that when I couldn't even sign up for their forum without listing my job and company or professorship at an institution, I wouldn't really expect there to be a bunch of really easy resources to learn it but there still ought to be something simpler to learn how to use them than skipping around a giant pdf.

If I were to go searching around for resources on learning the kind of syntax you need to work with this would I be looking for HAL stuff or STM32 stuff? It feels like the general structure of the programs is similar to all microcontrollers, and the general way of interacting with the board is basically the same too I mainly just need to know what to look for because when I went looking for stuff like "how to make an LED blink in STM32" I didn't find much.

I suppose it might make sense to just work with arduino boards to figure out ways of interacting with microcontrollers and then trying to translate my knowledge over.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.