Group of people learning C language and STM32F103C8T

Status
Not open for further replies.

W49N3R

Newbie level 5
Joined
Nov 23, 2003
Messages
8
Helped
0
Reputation
0
Reaction score
1
Trophy points
1,281
Activity points
118
Hello,

We are a group of 800+ users (25~70 yrs old) with hobby or profession in electronics, programming, uC, uPs, etc.

Some of those already use C language as hobby or professionally, others use assembly (AVR/8051/etc).
The most active users in the group created a task force to incentive the ones wishing to learn C, and choose the BluePill STM32F103C8T as the little training hardware platform, with the STLINK-V2 interface, and the STM32CubeMx as the PC IDE platform. The advantage of this, the BluePill and STLINK-V2 cost less than $15 online (I paid $9.95 on eBay US Seller), and the STM32CubeMx is free, so the financial investment on this venture is very low.

Some of the ones in the group that already knows very well C language and ARM programming, volunteered to slow teaching the "students", going through the STM32CubeMx setup, screens, then writing simple programs for the ARM, program the bluepill via STLINK-V2 and make it work to adrenaline the students, then explain in more details about what happened with the software files, etc.

We are in the step of acquiring the bluepill and STLINK-V2, downloading and installing STM32CubeMx, etc.

The intention of this post is to try to hear from all of you that already know ARM and C programming, any suggestions and incentives, as well negative approaches that we must observe, in order for this venture to work nicely.

I was an AVR consultor from former Atmel, and many years programming AVR mostly in assembly, previous 8051, 6809, Z80, etc, never entered the ARM realm, and now I think it is time to jump.

Thank you for any suggestions.
 
Hi,

A rather vague question.
No target application...

I used AVR many years, then moved to STM32F1xx, too.
All I can say: Read the datasheets to get familiar with the periferals and their features.
For sure, if you write code without knowing the chip details, the code will work. But with reduced performance.

The major benefit for me (as a real time measurement tool programmer) are the DMA functions.

Example:
I prepared structures for DMA access to read/write SPI EEPROM pages.(including instruction and address)
Read the contents when booting
Modify the structure data during processing
Then updating the EEPROM page is just a single command and needs only a couple of clock cycles of processing power.

Or reading ADC: like 8 channels interleaved 64 samples each is just a couple of instructions to set up.
Then you get informed (interrupt) when all the 8 x 64 conversions are finished and the values are in the buffer.

Klaus
 

Hello,

"STM32CubeMx" itself is not enough for programming STM32 MCUs - it is only for generating initialization code for MCU and it's peripherals (but does not contain ARM compiler). You need additionally ARM compiler - for example "System Workbench for STM32". The another option is to download AllInONe (CubeMX+compiler) for example: "STM32CubeIDE" it contains in one perspective tool for generating initialization code (equivalent of CubeMX) and in another ARM cross-compiler. Here is link on STM website to this IDE:

https://www.st.com/en/development-tools/stm32cubeide.html

Best Regards
--- Updated ---

BTW: Big respect for olders participants of your users group - for willingnes for learning programming ARMs
 

If you are ARM centric, another class of parts is SOC parts from Cypress/Infineon,
PSOC. They have both analog (20 Bit DelSig, 12 bit SAR, OpAmps, Comparators,
Vref, Analog muxes, mixer, DAC, PGA, Wavedac...) onboard in addition to ARM core and
a large peripheral digital capability, from gates thru MSI logic to Counter, SR, PWM,
Quadec, COM (SPI, I2C, I2S, UART, USB UART), LUT, Display, DSP filter.

ARM cores, depending on family group, range for M0, M0+, M3, Dual core.

Parts have additionally a logic fabric that can be used to create custom library components,
in PSOC language a component is an onchip resource (catalog attached for 5LP
family of what is on chip). Custom can be done with schematic capture, verilog,
or both. Community has already done stuff like DDS, Cordic, 74HC MSI equivalents,
CPLD.....to add to the standard library of onchip components. Some examples using
just a fractional part of resources -






Note these examples use only a fraction of resources on chip typically.

You can do codeless designs just using basic component config. For designs that need
component management the components come with a rich library of APIs. Its basically
a breadboard on a chip with many functional components.

Design wizards in IDE - DSP Filter wizard, DMA wizard, State Machine wizard, Ohmmeter wizard
(to make measurements in analog signal path you route with a wizard), UDB wizard.....

Tons of projects already done in IDE to build from, and out in community -




IDE and Compiler free, PSOC Creator, good starter board to use $ 10.



Regards, Dana.
 

Attachments

  • Component List (2).pdf
    183 KB · Views: 99
Last edited:


Oh, thank you very much for the information.
I knew that posting here our ARM starting adventure, will render positive answers.
 

Status
Not open for further replies.

Similar threads

Cookies are required to use this site. You must accept them to continue using the site. Learn more…