Thursday , 29 October 2020

List of scheduled chapters


Viewing 10 posts - 1 through 10 (of 10 total)
  • Author
  • #3319
    Carmine Noviello

    I receive at least one email every day about my plans regarding the content of the Mastering STM32 book. Many of you ask me if I already have a defined list of topics that I’ll cover in the book. Others also ask me why the frequency of updates is decreased in the last period.

    Well, let’s start from the last question. Unfortunately, I’m experiencing a complex period from my job point of view. So, I’m really busy in this days and I’ve a lot of critical situations to face. So, don’t expect the same update frequency seen in the past.

    Regarding the first question, I still don’t have a clear idea about the final list of topics covered in the book. I think that it will cover the following topics in addition to those already published (not necessarily in this order):

    • SPI
    • I2C
    • IWDT and WWDT
    • RTC

    Instead, I’m in doubtful about covering these other topics (mainly because the Nucleo boards lack for dedicated peripherals):

    • Ethernet/internet connectivity in general
    • USB
    • FatFS and SDIO interface

    I would like to request that you do a chapter(s) on USB. You could use the F401 discovery board or the F407 discovery with the plug in additions. I would be willing to pay extra for this addition. You could do them as separate appendicies. I have found your book to be very helpful. I have a build environment set up and am moving away from IAR to GCC. IAR is great but it is just to expensive.

    Also trying to work through the micro python for the F401 which could be made into an appendix.

    Thanks again for all your work and for sharing with us.
    Richard Kadrmas
    Amherst, NH USA
    Embedded Diagnostics


    I would also very much like to voice my wish for you to cover USB. I’ve got several F103-based boards with USB-ports on them and I’d obviously like to be able to make use of them. USB is just such a useful, important peripheral these days, like e.g. if you were to design a new piece of hardware to connect to a PC, what sort of connection would it use? Yup, almost certainly USB.

    I do understand that USB is a really big topic to cover and it’d probably take you quite a while to do, but I believe it would very much increase your book’s value. At least I would very much appreciate it.


    I’m a novice in STM32 programming and find you book very useful.
    I’m trying to build a project for the STM32F7-discovery board as this has a very useful 4.5″ user-interface.
    But I’m facing huge problems just to set up the project using the AC6 tools.
    I can either set up a MX project supporting Ethernet and USB or I can import a STemWin example project, but doing both in my own workspace seems impossible.
    The available documentation for STemWin is not oriented towards practical usage, so if you have the time and interest in including a chapter elaborating on the implementation of STemWin in MX generated projects it would be very helpful for me and many others.

    Thanks / Peter


    Hello Carmine,
    Great job thus far! We’re looking forward to seeing the book at 100% completion. I would like to humbly beg your indulgence regarding the three topics you’re not sure about: USB, Ethernet/Internet connectivity and FatFs/SDIO. True, the Nucleo boards don’t have dedicated peripherals for these, but there are so many development boards in the market that come with at least one of them. I own an STM32F4DISCOVERY myself which has both USB host and client capability, and I’ve never been able to use either because there just isn’t a single coherent source of information. Regarding Ethernet, I don’t think one needs dedicated peripherals – a cheap W5100/W5500 breakout from AliExpress or similar connected to the relevant GPIO pins (SPI) on the chip and you’re good to go! Same thing with FatFs and SDIO. Kindly consider that no one else has embarked on this journey to provide such information to the regular guys (like myself) so please, please reconsider (re-)adding them. Understandably its alot of work, and you’re having a tough time at your day job, but we can be patient, I’m sure. I know I can be.

    The truth is that most people I know move to ARM processors specifically because 8-bitters have too many limitations once you exceed a certain point of complexity. Therefore I don’t think that having to wire/rig up suitable connections for USB/Ethernet/SDIO should be daunting to anyone who has bothered to get into ARM processors.

    Please reconsider!


    Oh Yes USB chapter would be great:)
    Thanks for this huge job and still the only good book for beginners.


    Please make chapter of USB for CDC and DFU.


    Another very happy reader here, bumping this thread to add +1 vote for a USB chapter!

    It is precisely this “advanced” topics that cause more headaches, so see them treated with the same quality as the rest of the book would really help. Nowadays any design will have some kind of USB anyways.


    Hi Carmine,

    I am enjoying the book and learning a lot. I think a great addition would be a quick start section in chapter 2 using Arduino IDE + STM32duino (pointing out the weaknesses; bad project file management, no code completion, no open declaration, no debugging, etc.). Then add a chapter after the STM32CubeMX chapter that incorporates the STM32duino library with the the Eclipse + STM32CubeMX + GCC + openOCD + Qstlink2 tool chain that overcomes all the issues pointed out in the quick start section of chapter 2 and is great for those coming from Arduino.

    The STM32duino library is now supported by STMicroelectronics ( I think these additions would make your book the best resource on the STM32 (beginner to advanced).

    • This reply was modified 3 years, 4 months ago by dboy31.
    • This reply was modified 3 years, 4 months ago by dboy31.

    While the Nucleo are fine they are, as you have noted, limited significantly by the lack of a USB peripheral port among others. We out here have to build up bare metal products and want to use the STM/HAL/CubeMX tools efficiently. Your book goes a long way toward that goal BUT…

    I am using a STM32L462RE in a bare metal configured with CubeMX. The system configured with an 8Mhz external crystal (verified as enabled and operating at 8Mhz). The system clock is pll to 40Mhz. USB Clock at 48Mhz. Development using SW4STM32 with SWD debugging via STLINK/V2. All works pretty well EXCEPT…

    Can you address a short discussion on the issue of CubeMX generating SysTick at 2ms rather than 1ms. I had to change the systick initializer to /2000 from /1000 to get a systick of 1ms. Every time I generate code out of cubemx I have to repeat the change.

    Can you address a short discussion on the interrupt priority levels with respect to the peripheral drivers (UART, USB, I2C,…) and Systick. This seems to trip up a lot of us.

    We really need a chapter on USB, especially on the L series. For instance we tested CDC using using a Nucleo L152 with a lashed up USB cable and some how got it to work BUT we are having issues on the bare metal pcb bring up, mainly suspect getting the USB power domain to engage properly via the VUSB buss detector pin and the HAL but it’s really not clear where the disconnect might be. In addition the L series has USB charger detection and I cannot find any apnotes or technical discussion of the feature.



    • This reply was modified 2 years, 10 months ago by hkswan.
    • This reply was modified 2 years, 10 months ago by hkswan.

Viewing 10 posts - 1 through 10 (of 10 total)
  • You must be logged in to reply to this topic.