Developm. env. and C lang for nucleo stm32 board

Thread Starter

bwack

Joined Nov 15, 2011
113
Hello. I've decided to take the step from PIC and AVR programming to STM32 micros. I have experience with TI launchpad Tiva 32 bit ARM and Keil from a wonderful online edX course.

I have the nucleo-64 stm32f411 dev board but dont know where to go from here.

Any advice? I like C programming and sometimes assembly lang just to get to know the micro bottom up.

Happy Holidays!
 
Last edited:

dannyf

Joined Sep 13, 2015
2,197
I like C programming and sometimes assembly lang just to get to know the micro bottom up.
development environment and C language wouldn't help you nor hinder your understanding of how the chip works. The best way to learn that is to go through the datasheet, and lots of practice and painful debugging of your own code.

development environment is highly personal and others' choices of development environment do not help you, unless you ask them why they made the decisions that they did.
 

Thread Starter

bwack

Joined Nov 15, 2011
113
I've already started reading in the stm32f datasheets for a while. Now I'm asking for dev. environments.

MrChips:
Stm32Cube does not come with a compiler right? It is a configuration wizard that generates a C code? Will STM32Cube go well with Keil uVision ? I might actually sign up for a MOOC. Thanks for letting me know about it.
 

MrChips

Joined Oct 2, 2009
30,708
STM32Cube is not a compiler. It is an app that generates code templates based on the hardware platform and what you want to do with the chip. In other words, it generates hardware configuration files that connects the MCU I/O pins with the hardware modules you plan on using. This is known as "Hardware Wizard" on some other platforms. You do not need STM32Cube but it can save a lot of headaches when you are just starting out. It is a shortcut to having to read the device user manual. A lot of the device functions are already written for you in something called HAL (Hardware Abstraction Layer). Most of your efforts will be spend learning how to use the HAL device drivers. Eventually, it pays to learn how to interface with hardware modules at the register level.

You can read up about Cube here, which I just found and have not read:
http://www.datarespons.com/pros-con...writing-drivers-arm-cortex-m-microcontroller/

You can use any of the recommended software platforms, IDE (integrated development environment). I am more familiar with IAR EWARM but the programming platform is similar on Keil. Both IAR and Keil are costly. However you can start off with code limited versions that are free.

Caveat: I started programming STM32F407 before Cube or HAL came along. Hence I had to learn how to program the hardware the hard way. So far I have not converted to Cube but I can see the benefits of using it.
 

dannyf

Joined Sep 13, 2015
2,197
I have used a variety of development environments. in the corporate world, commercial ones like Keil / IAR absolutely rule. So if you ever want to make a living off of this, they are the go-to guys. Keil 5.x takes some time to like, however.

there are also vendor specific ones, CCS from TI or LPCXpresso from NXP.

For free ones, my favorite is CoIDE - their package management tools were class leading. Too bad that they died out recently. Emblocks is a worthy try as well - I have been their biggest fan since their beta days and use them exclusively for PIC24.

I am trying out Segger Studio now and have to say that I like what I saw. the interface is the most modern of the commercial offerings and reminds me of ST - my favorite editor. Lots of potentials. But it is not a sure thing that it wll take off so some risks there - I wouldn't use it for any real job.

What has been discussed earlier (MOOC or Cube) aren't generally understood to be "environment".
 
Top