STM32單片機原理與應用(第2版·HAL庫版)

向培素、杜誠

  • 出版商: 清華大學
  • 出版日期: 2026-02-01
  • 售價: $294
  • 語言: 簡體中文
  • ISBN: 7302709807
  • ISBN-13: 9787302709800
  • 相關分類: STM32
  • 下單後立即進貨 (約4週~6週)

  • STM32單片機原理與應用(第2版·HAL庫版)-preview-1
  • STM32單片機原理與應用(第2版·HAL庫版)-preview-2
  • STM32單片機原理與應用(第2版·HAL庫版)-preview-3
  • STM32單片機原理與應用(第2版·HAL庫版)-preview-4
  • STM32單片機原理與應用(第2版·HAL庫版)-preview-5
  • STM32單片機原理與應用(第2版·HAL庫版)-preview-6
  • STM32單片機原理與應用(第2版·HAL庫版)-preview-7
STM32單片機原理與應用(第2版·HAL庫版)-preview-1

相關主題

商品描述

"本書基於STM32F103C8T6單片機講解了STM32單片機的內部結構、最小系統、內置外設——GPIO、EXTI、USART、通用 TIM、CAN、ADC、DMA 的 HAL庫設計及使用方法。第2版使用了HAL庫代替第1版使用的“庫函數”進行設計開發,HAL庫可以方便地實現同一個程序在不同型號STM32芯片上的移植和重用。 本書適合作為高等院校物聯網、自動化、電子信息、計算機科學與技術、電子科學與技術、控制工程、通信工程、信息安全、智能科學與技術等相關專業“嵌入式控制”“單片機原理與應用”等課程的教材,也可供行業相關技術人員參考使用。"

目錄大綱

目錄

第1章概述

1.1嵌入式系統概述

1.1.1嵌入式系統的定義

1.1.2嵌入式系統的應用

1.1.3嵌入式系統的組成

1.2STM32單片機概述

1.2.1STM32單片機產品系列

1.2.2STM32F103系列單片機的內部資源

1.2.3STM32單片機命名規則

1.3嵌入式單片機的開發流程

1.3.1常用的開發工具

1.3.2STM32CubeMX新建HAL庫版工程

1.3.3MDK新建HAL庫版工程

1.3.4單片機的開發流程

1.4單片機的學習方法

第2章STM32單片機的內部結構

2.1系統架構和存儲器組織

2.1.1系統架構

2.1.2存儲器組織

2.1.3位帶操作

2.1.4啟動設置

2.2時鐘系統

2.2.1時鐘

2.2.2時鐘控制HAL庫函數

2.3時鐘系統配置

2.3.1STM32單片機復位啟動過程

2.3.2main()函數中初始化代碼

2.4系統定時器SysTick

2.4.1SysTick概述

2.4.2SysTick寄存器

2.4.3SysTick HAL庫函數

2.4.4SysTick延時實例

第3章STM32單片機的最小系統

3.1STM32F103C8T6單片機

3.1.1STM32F103系列單片機概述

3.1.2STM32F103C8T6引腳定義

3.1.3STM32F103C8T6片內資源

3.2STM32單片機最小系統構成

3.2.1電源電路

3.2.2復位電路

3.2.3時鐘電路

3.2.4啟動模式設置電路

3.2.5編程接口電路

第4章通用輸入/輸出的原理與應用

4.1GPIO的內部結構及特性

4.1.1輸出數據源

4.1.2推挽輸出和開漏輸出

4.1.3保護二極管

4.1.4上拉輸入和下拉輸入

4.1.5輸入數據的去向

4.2GPIO常見參數配置

4.2.1GPIO的輸出速度

4.2.2GPIO引腳的復用和重映射

4.3GPIO的常用HAL庫函數

4.3.1函數HAL_GPIO_Init()

4.3.2函數HAL_GPIO_ReadPin()

4.3.3函數HAL_GPIO_WritePin()

4.3.4函數HAL_GPIO_TogglePin()

4.3.5函數HAL_GPIO_LockPin()

4.4GPIO的相關寄存器

4.4.1端口配置低寄存器 

4.4.2端口輸入數據寄存器

4.4.3端口輸出數據寄存器

4.4.4端口位設置/清除寄存器

4.4.5端口位清除寄存器

4.5GPIO的應用實例

4.5.1引腳重映射功能的設置方法

4.5.2GPIO的初始化步驟

4.5.3GPIO位帶操作設置方法

4.5.4GPIO應用實例

第5章外部中斷的原理與應用

5.1中斷概述

5.1.1中斷的作用

5.1.2中斷的常見術語

5.2NVIC中斷管理

5.2.1搶占優先級和響應優先級

5.2.2中斷優先級分組

5.2.3NVIC中斷管理相關HAL函數

5.3EXTI外部中斷

5.3.1中斷請求信號的輸入引腳

5.3.2EXTI線對應的中斷函數

5.4EXTI的常用HAL庫函數

5.4.1函數HAL_GPIO_EXTI_IRQHandler()

5.4.2函數HAL_GPIO_EXTI_Callback()

5.5EXTI的應用實例

5.5.1EXTI的初始化步驟

5.5.2EXTI應用實例

第6章USART的工作原理與應用

6.1串行通信基礎

6.1.1並行通信與串行通信

6.1.2同步通信與異步通信

6.1.3單工與雙工傳輸模式

6.1.4串行通信的錯誤校驗

6.2USART的內部結構及特性

6.2.1相關引腳

6.2.2數據寄存器

6.2.3狀態寄存器和控制寄存器

6.2.4波特率

6.3USART的常用HAL庫函數

6.3.1函數HAL_USART_Init()

6.3.2函數HAL_USART_Transmit()

6.3.3函數HAL_UART_Init()

6.3.4函數HAL_UART_Receive_IT()

6.3.5函數HAL_UART_Transmit_IT()

6.3.6函數HAL_UART_IRQHandler()

6.4USART的常用宏

6.4.1宏__HAL_UART_ENABLE_IT()

6.4.2宏__HAL_UART_GET_FLAG()

6.4.3宏__HAL_UART_GET_IT_SOURCE()

6.4.4宏__HAL_UART_CLEAR_FLAG()

6.5USART的應用實例

6.5.1USART的初始化步驟及註意事項

6.5.2串口USART發送(輪詢模式)

6.5.3串口USART接收(中斷模式)

第7章通用定時器的原理與應用

7.1TIMx的內部結構及特性

7.1.1通用定時器的時鐘

7.1.2時基單元

7.1.3計數初值的計算

7.1.4輸入捕獲模式

7.1.5PWM輸出模式

7.1.6TIM1帶死區互補輸出模式

7.1.7TIMx的引腳設置

7.2TIMx的常用HAL庫函數

7.2.1函數HAL_TIM_Base_Init()

7.2.2函數HAL_TIM_Base_MspInit()

7.2.3函數HAL_TIM_Base_Start()/HAL_TIM_Base_Stop()

7.2.4函數HAL_TIM_Base_Start_IT()/HAL_TIM_Base_Stop_IT()

7.2.5函數HAL_TIM_IRQHandler()

7.2.6函數HAL_TIM_PeriodElapsedCallback()

7.2.7函數HAL_TIM_IC_Init()

7.2.8函數HAL_TIM_IC_MspInit()

7.2.9函數HAL_TIM_IC_ConfigChannel()

7.2.10函數HAL_TIM_IC_Start_IT()/HAL_TIM_IC_Stop_IT()

7.2.11函數HAL_TIM_IC_CaptureCallback()

7.2.12函數HAL_TIM_PWM_Init()

7.2.13函數HAL_TIM_PWM_MspInit()

7.2.14函數HAL_TIM_PWM_ConfigChannel()

7.2.15函數HAL_TIM_PWM_Start()

7.2.16函數HAL_TIMEx_ConfigBreakDeadTime()

7.2.17函數HAL_TIMEx_PWMN_Start()

7.3TIMx的常用宏

7.3.1宏__HAL_TIM_ENABLE_IT()

7.3.2宏__HAL_TIM_SET_CAPTUREPOLARITY()

7.3.3宏__HAL_TIM_GET_COMPARE()

7.3.4宏__HAL_TIM_SET_COUNTER()

7.3.5宏__HAL_TIM_SET_COMPARE()

7.3.6宏__HAL_TIM_ENABLE_OCxPRELOAD()

7.4TIMx的應用實例

7.4.1通用定時功能

7.4.2輸入捕獲功能

7.4.3PWM輸出功能

7.4.4TIM1帶死區互補輸出功能

第8章CAN總線接口的原理與應用

8.1CAN總線概述

8.1.1CAN總線的連接構成

8.1.2CAN總線協議

8.2STM32的bxCAN總線接口內部結構及特性

8.2.1CAN的引腳

8.2.2bxCAN的結構及通信過程

8.2.3bxCAN的主要工作模式

8.2.4STM32 bxCAN的位時序和波特率

8.2.5報文ID過濾

8.3CAN總線的常用HAL庫函數

8.3.1函數HAL_CAN_Init()

8.3.2函數HAL_CAN_ConfigFilter()

8.3.3函數HAL_CAN_ActivateNotification()

8.3.4函數HAL_CAN_Start()

8.3.5函數HAL_CAN_AddTxMessage()

8.3.6函數HAL_CAN_GetRxMessage()

8.3.7函數HAL_CAN_RxFifo0FullCallback()

8.3.8函數HAL_CAN_RxFifo0MsgPendingCallback()

8.4CAN總線接口的應用實例

8.4.1CAN總線接口的初始化步驟

8.4.2CAN總線接口環回模式通信

第9章ADC的原理與應用

9.1ADC的內部結構及特性

9.1.1參考電壓

9.1.2輸入通道

9.1.3轉換時間

9.1.4ADC的啟動

9.1.5ADC產生的中斷

9.1.6ADC轉換值的計算

9.1.7ADC的轉換模式

9.1.8DMA請求

9.2ADC的常用HAL庫函數

9.2.1函數HAL_ADC_Init()

9.2.2函數HAL_ADC_ConfigChannel()

9.2.3函數HAL_ADCEx_Calibration_Start()

9.2.4函數HAL_ADC_Start()

9.2.5函數HAL_ADC_Start_DMA()

9.2.6函數HAL_ADC_GetValue()

9.2.7函數ADC_ExternalTrigConvConfig()

9.2.8函數ADC_DiscModeChannelCountConfig()

9.2.9函數ADC_DiscModeCmd()

9.3ADC的應用實例

9.3.1ADC的初始化編程步驟

9.3.2ADC單通道連續轉換

第10章DMA的原理與應用

10.1DMA的內部結構及特性

10.1.1DMA請求

10.1.2DMA通道和仲裁

10.1.3DMA傳輸的參數

10.2DMA的常用HAL庫函數

10.2.1函數HAL_DMA_Init()

10.2.2函數HAL_DMA_PollForTransfer()

10.2.3常用外設觸發DMA函數

10.3DMA的常用宏

10.4DMA的應用實例

10.4.1DMA的初始化編程步驟

10.4.2ADC掃描模式的DMA傳輸

10.4.3TIM3_TRGO觸發ADC掃描模式的DMA傳輸

參考文獻