Example: confidence

MasteringSTM32 - Carmine Noviello

Mastering STM32A step-by-step guide to the most complete ARM Cortex-Mplatform, using a free and powerful developmentenvironment based on Eclipse and GCCC armine NovielloThis book is for sale version was published on 2018-01-03 This is aLeanpubbook. Leanpub empowers authors and publishers with the Lean Publishingis the act of publishing an in-progress ebook using lightweight tools andmany iterations to get reader feedback, pivot until you have the right book and build traction onceyou do. 2015 - 2018 Carmine NovielloTweet This Book!Please help Carmine Noviello by spreading the word about this book onTwitter!The suggested hashtag for this book is# out what other people are saying about the book by clicking on this link to search for thishashtag on Twitter:# MasteringSTM32 ContentsPreface..iWhy Did I Write the Book?.. iWho Is This Book For?.. iiHow to Integrate This Book?.. iiiHow Is the Book Organized?.. ivAbout the Author.. viiErrata and Suggestions.. viiiBook Support.. viiiHow to Help the Author.

MasteringSTM32 Astep-by-stepguidetothemostcompleteARMCortex-M platform,usingafreeandpowerfuldevelopment environmentbasedonEclipseandGCC CarmineNoviello

Tags:

  Masteringstm32

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Transcription of MasteringSTM32 - Carmine Noviello

1 Mastering STM32A step-by-step guide to the most complete ARM Cortex-Mplatform, using a free and powerful developmentenvironment based on Eclipse and GCCC armine NovielloThis book is for sale version was published on 2018-01-03 This is aLeanpubbook. Leanpub empowers authors and publishers with the Lean Publishingis the act of publishing an in-progress ebook using lightweight tools andmany iterations to get reader feedback, pivot until you have the right book and build traction onceyou do. 2015 - 2018 Carmine NovielloTweet This Book!Please help Carmine Noviello by spreading the word about this book onTwitter!The suggested hashtag for this book is# out what other people are saying about the book by clicking on this link to search for thishashtag on Twitter:# MasteringSTM32 ContentsPreface..iWhy Did I Write the Book?.. iWho Is This Book For?.. iiHow to Integrate This Book?.. iiiHow Is the Book Organized?.. ivAbout the Author.. viiErrata and Suggestions.. viiiBook Support.. viiiHow to Help the Author.

2 IxCopyright Disclaimer.. ixCredits.. ixAcknowledgments..xI Introduction..11. Introduction to STM32 MCU Portfolio.. Introduction to ARM Based Processors.. Cortex and Cortex-M Based Processors.. Core Registers.. Memory Map.. Bit-Banding.. Thumb-2 and Memory Alignment.. Pipeline.. Interrupts and Exceptions Handling.. SysTimer.. Power Modes.. CMSIS.. Effective Implementation of Cortex-M Features in the STM32 Portfolio.. Introduction to STM32 Microcontrollers.. Advantages of the STM32 ..And Its Drawbacks.. A Quick Look at the STM32 Subfamilies.. F0.. F1.. F2.. F3.. F4.. F7.. H7.. L0.. L1.. L4.. L4+.. W and J STM32 MCUs.. How to Select the Right MCU for You?.. The Nucleo Development Board.. 452. Setting-Up the Tool-Chain.. Why Choose Eclipse/GCC as Tool-Chain for STM32.. Two Words About .. and GCC.. Windows - Installing the Tool-Chain.

3 Windows - Eclipse Installation.. Windows - Eclipse Plug-Ins Installation.. Windows - GCC ARM Embedded Installation.. Windows Build Tools Installation.. Windows OpenOCD Installation.. Windows ST Tools and Drivers Installation.. Windows ST-LINK Firmware Upgrade.. Linux - Installing the Tool-Chain.. Linux - Install i386 Run-Time Libraries on a 64-bit Ubuntu.. Linux - Java Installation.. Linux - Eclipse Installation.. Linux - Eclipse Plug-Ins Installation.. Linux - GCC ARM Embedded Installation.. Linux - Nucleo Drivers Installation.. Linux ST-LINK Firmware Upgrade.. Linux OpenOCD Installation.. Linux - ST Tools Installation.. Mac - Installing the Tool-Chain.. Mac - Eclipse Installation.. Mac - Eclipse Plug-Ins Installation.. Mac - GCC ARM Embedded Installation.. Mac - Nucleo Drivers Installation.. Mac ST-LINK Firmware Upgrade.. Mac OpenOCD Installation.

4 Mac - ST Tools Installation.. 923. Hello, Nucleo!.. Get in Touch With the Eclipse IDE.. Create a Project.. Connecting the Nucleo to the PC.. Flashing the Nucleo using STM32 CubeProgrammer.. Understanding the Generated Code.. 1084. STM32 CubeMX Tool.. Introduction to CubeMX Tool.. Pinout View.. Chip View.. IP Tree Pane.. Clock View.. Configuration View.. Power Consumption Calculator View.. Project Generation.. Generate C Project with CubeMX.. Understanding Generated Code.. Create Eclipse Project.. Importing Generated Files Into the Eclipse Project Manually.. Importing Files Generated With CubeMX Into the Eclipse Project Automat-ically.. Understanding Generated Application Code.. Add Something Useful to the Firmware.. Downloading Book Source Code Examples.. 1415. Introduction to Debugging.. Getting Started With OpenOCD.. Launching OpenOCD.. Launching OpenOCD on Windows.. Launching OpenOCD on Linux and MacOS.

5 Connecting to the OpenOCD Telnet Console.. Configuring Eclipse.. Debugging in Eclipse.. ARM Semihosting.. Enable Semihosting on a New Project.. Using Semihosting With C Standard Library.. Enable Semihosting on an Existing Project.. Semihosting Drawbacks.. Understanding How Semihosting Works.. 170II Diving into the HAL..1756. GPIO Management.. STM32 Peripherals Mapping and HALH andlers.. GPIOs Configuration.. GPIO Mode.. GPIO Alternate Function.. Understanding GPIO Speed.. Driving a GPIO.. De-initialize a GPIO.. 1907. Interrupts Management.. NVIC Controller.. Vector Table in STM32.. Enabling Interrupts.. External Lines and NVIC.. Enabling Interrupts With CubeMX.. Interrupt Lifecycle.. Interrupt Priority Levels.. Cortex-M0/0+.. Cortex-M3/4/7.. Setting Interrupt Priority in CubeMX.. Interrupt Re-Entrancy.. Mask All Interrupts at Once or an a Priority Basis.. 2208. Universal Asynchronous Serial Communications.

6 Introduction to UARTs and USARTs.. UART Initialization.. UART Configuration Using CubeMX.. UART Communication inPolling Mode.. Installing a Serial Console in Windows.. Installing a Serial Console in Linux and MacOS X.. UART Communication inInterrupt Mode.. UART Related Interrupts.. Error Management.. I/O Retargeting.. 2549. DMA Management.. Introduction to DMA.. The Need of a DMA and the Role of the Internal Buses.. The DMA Controller.. The DMA Implementation in F0/F1/F3/L1 MCUs.. The DMA Implementation in F2/F4/F7 MCUs.. The DMA Implementation in L0/L4 MCUs.. F0/F1/F3/L0/L1/L4 HALs.. F2/F4/F7 HALs.. L0/L4 HALs.. How to Perform Transfers in Polling Mode.. How to Perform Transfers in Interrupt Mode.. How to PerformPeripheral-To-PeripheralTransfers .. Using theHAL_UARTM odule With DMA Mode Transfers.. Miscellaneous Functions FromHAL_DMAandHAL_DMA_ExModules.. Using CubeMX to Configure DMA Requests.

7 Correct Memory Allocation of DMA Buffers.. A Case Study: The DMAM emory-To-MemoryTransfer Performance Analysis.. 28910. Clock Tree.. Clock Distribution.. Overview of the STM32 Clock Tree.. The Multispeed Internal RC Oscillator in STM32L Families.. Configuring Clock Tree Using CubeMX.. Clock Source Options in Nucleo Boards.. OSC Clock Supply.. OSC 32kHz Clock Supply.. Overview of theHAL_RCCM odule.. Compute the Clock Frequency at Run-Time.. Enabling theMaster Clock Output.. Enabling theClock Security System.. HSI Calibration.. 30911. Timers.. Introduction to Timers.. Timer Categories in an STM32 MCU.. Effective Availability of Timers in the STM32 Portfolio.. Basic Timers.. Using Timers inInterrupt Mode.. Time Base Generation inAdvancedTimers.. Using Timers inPolling Mode.. Using Timers inDMA Mode.. Stopping a Timer.. Using CubeMX to Configure aBasic Timer.. General Purpose Timers.. Time Base Generator With External Clock Sources.

8 External Clock Mode 2.. External Clock Mode 1.. Using CubeMX to Configure the Source Clock of aGeneralPurposeTimer.. Master/Slave Synchronization Modes.. Enable Trigger-Related Interrupts.. Using CubeMX to Configure the Master/Slave Synchronization. Generate Timer-Related Events by Software.. Counting Modes.. Input Capture Mode.. Using CubeMX to Configure the Input Capture Mode.. Output Compare Mode.. Using CubeMX to Configure the Output Compare Mode.. Pulse-Width Generation.. Generating a Sinusoidal Wave Using PWM.. Using CubeMX to Configure the PWM Mode.. One Pulse Mode.. Using CubeMX to Configure the OPM Mode.. Encoder Mode.. Using CubeMX to Configure theEncoder Mode.. Other Features Available inGeneral PurposeandAdvancedTimers.. SensorMode.. Combined Three-Phase PWM Mode and Other Motor-ControlRelated Features.. Break Input and Locking of Timer Registers.. Preloading of Auto-Reload Register.. Debugging and Timers.

9 SysTick Timer.. Use Another Timer as System Timebase Source.. A Case Study: How to Precisely Measure Microseconds With STM32 MCUs.. 38412. Analog-To-Digital Conversion.. Introduction to SAR ADC.. Conversion Modes.. Single-Channel, Single Conversion Mode.. Scan Single Conversion Mode.. Single-Channel, Continuous Conversion Mode.. Scan Continuous Conversion Mode.. Injected Conversion Mode.. Dual Modes.. Channel Selection.. ADC Resolution and Conversion Speed.. A/D Conversions in Polling Mode.. A/D Conversions in Interrupt Mode.. A/D Conversions in DMA Mode.. Convert Multiple Times the Same Channel in DMA Mode.. Multiple and not Continuous Conversions in DMA Mode.. Continuous Conversions in DMA Mode.. Errors Management.. Timer-Driven Conversions.. Conversions Driven by External Events.. ADC Calibration.. Using CubeMX to Configure ADC Peripheral.. 41613. Digital-To-Analog Conversion.. Introduction to the DAC Peripheral.

10 Driving the DAC Manually.. Driving the DAC in DMA Mode Using a Timer.. Triangular Wave Generation.. Noise Wave Generation.. 43014. I C.. Introduction to the I C specification.. The I C Protocol.. START and STOP Condition.. Byte Format.. Address Frame.. Acknowledge (ACK) and Not Acknowledge (NACK).. Data Frames.. Combined Transactions.. Clock Stretching.. Availability of I C Peripherals in STM32 MCUs.. Using the I C Peripheral inMaster Mode.. I/O MEM Operations.. Combined Transactions.. A Note About the Clock Configuration in STM32F0/L0/L4 Using the I C Peripheral inSlave Mode.. Using CubeMX to Configure the I C Peripheral.. 46115. SPI.. Introduction to the SPI Specification.. Clock Polarity and Phase.. Slave Select Signal Management.. SPITI Mode.. Availability of SPI Peripherals in STM32 MCUs.. Exchanging Messages Using SPI Peripheral.. Maximum Transmission Frequency Reachable using the CubeHAL.. Using CubeMX to Configure SPI Peripheral.


Related search queries