Stuff that I hope will help

User avatar
Posts: 2220
Joined: Mon Apr 27, 2015 12:50 pm
Location: Greater Atlanta

Stuff that I hope will help

Post by mrburnette » Thu Jan 18, 2018 6:13 pm

Welcome new members to the forum.

I'm just a common member too, but I have been around a while and would like to share somethings I think may be useful to you.
Keep coming back here to this post from time to time as it is likely other members will fuss at me and I will likely revise some things!

To make your life easier here, you should be aware that there are some very valuable resources on the web:
- The original documentation from Leaflabs ... the Maple commercial project that lasted only a few years

- The current STM32F1xx core files for the latest version of ArduinoIDE for clone boards

- The current STM32 core files for official STM Nucleo boards
Updated: please address all hardware or Nucleo core questions in this sub-forum:

- WiKi resources ... STM32/wiki

This site (and the Leaflabs site) is fully indexed by Google. So specific info can be located easily as shown below for SPI2
The above site: search magic also works on the site. Most helpful.

Beyond being able to locate knowledge using Google, you are also going to need some basic electronic skills, such as Ohm's law. For more complex electronic designs, you may find the following Circuit Simulator useful:

For gathering formulas and other physical information about Electronics or Physics, you may find this site useful:

Specific boards:
Blue Pill:
Red Pill:
Black Pill:
Maple Mini:

Many of our members consider themselves 'advanced' users of uC's and many are involved with microcontrollers as part of their business. So, when posting questions or requesting assistance; please respect these user's time and provide as much information as possible about:
- I am attempting to...
- I based my design off of this/these resources...
- I have referred to this manufacturer document(s)...
- I have attached my full-code-to-date and I am having these specific concerns/issues...
- My computer development environment is: OS, IDE version, library version, library source, etc.

You get the idea... the more you provide, the better the quality of the responses.

Do not forget that when you install the core per the online instructions, you will get many examples. I expect you to review examples and hopefully even bring them up and play a bit. Understanding example code can go a long way to help you acclimate to the STM32duino way of doing things. We do try and keep ourselves "arduino-centric" but sometimes it is necessary to deviate or invent new ways to use functions within the 32-bit ARM architecture that just does not exist in the 8-bit Arduino introductory world.

The World Wide Web (Internet) is a great place to find conflicting information. Even within the forum there is conflicting information due mainly to evolution: especially true for SPI, I2C, and hardware serial. If information is contradictory, please try the most recent information first. If possible, prototype with the most current information/instructions before asking for help in the forum. Questions about compile/link errors really need to have the source code attached as well as identify the links to all libraries that are dependencies. (Remember to try the updated (current) versions of all libraries.

Do not lose your working code.
Instead of just autosaving with each test compile, after you implement code and test that the specific code-to-date is working satisfactory, then use File/Save As from the ArduinoIDE and give the sketch a new name: I suggest using 01, 02, 03 ... 99 as suffixes to the file name. When you have a final version that is working perfectly, the ZIP up the "nn" directory that represent the working version and then delete all of the old directories. You will have the current filenameNN directory and a ZIP backup of the code just for safety. I copy all of my ZIP files to an external SD card or USB drive.

Where does that GCC stuff come from?
A note about the ARM compiler. The GCC tools are installed by installing Arduino official support for the Due board. STM32duino uses the GCC version installed. Using the Teensy version or the latest version of GCC is likely to cause you some problems. We have limited bandwidth from a volunteer forum to "fix" problems you create, so if you are advanced enough to do things such as updating underlying tools, PLEASE regress all such updates before assuming the STM32duino core files are defective. In my shop, I keep a separate (old) PC that can be wiped of Arduino and a new installation performed for sanity testing.

PLEASE do not wake-up sleeping threads!
  • If the last post is > 30 days old, only comment if you have something of value to add. A "thank you / I needed that / etc. simply causes the "Active topics" to sort by date-time and come back into "view" with no value added.
  • If the last post > 30 days, post only if the information provided previously is inaccurate in some manner. Not just a missing semi-colon in a snippet but something critical. Example: if you do this ... the uC will be (maybe) physically damaged.
  • It is (almost) always appropriate to start a new post for an inquiry even if that inquiry is somewhat related to an old post (> 30 days.)
Good luck,