Electrical – Three different development boards for STM32F103C8T6

gpiopinsstm32

I ordered one of these which has a single row of pins

  1. Single-row

STM32F103 board with single row of 0.1" I/O pins


While there are also these which have double row of pins:

  1. Double-row

STM32F103 board with double row of 0.1" I/O pins

I wonder what I miss … of course a lot of pins difference, but I'm not sure what those pins are, are those pins I cannot use at all, and are some of those pins I will miss having special functions like UART/SPI etc I cannot use?

For me it's a but unclear what pins mean what (used to the Arduino where every pin has it's own meaning).


  1. Minimal

STM32F103 "Minimum System Development" board

This one does not have the JTAG (I also ordered a USB TTL converter and JLINK 'stick'. Do I have the same functionality as like 1 or 2 above in this case?

Best Answer

Comparing STM32 boards with arduino in my experience will confuse you. STM32 boards have ports which in turn have pins.

If you want to use PC05, you need to enable clock on Port C (known as GPIOC) and initialize GPIO_Pin_5, you now have control over that pin you can set it as open drain, AF etc; you can also set the speed. You also have a lot of more freedom in that if you want to use I2C it doesn't have to be on any specific pin, you can use whichever on you want (although some pins on some ports can't be used for specific peripherals, I highly advice reading the ref manual for your baord and the specific peripherals you want to use).

If your board has more physical pins then you can connect more devices, you dont lose things such as UART, I2C, SPI etc; you just have less pins to use them on.

I'm assuming you are new to STM32, just to let you know that you need to get an stlink (version 2 for that board) in order to program the board (you can't cheap out on this). It also helps you debug your program.

It's also hard to find an IDE, so you can use http://www2.keil.com/mdk5/uvision/ (the only I used and would highly advise to use it) or simply just use the Arduino one (I highly advise against this if you want to learn more about embedded).

Related Topic