ARM MCU嵌入式開發——基於國產GD32F10x芯片(微課視頻版)

高延增、魏輝、侯躍恩

  • ARM MCU嵌入式開發——基於國產GD32F10x芯片(微課視頻版)-preview-1
  • ARM MCU嵌入式開發——基於國產GD32F10x芯片(微課視頻版)-preview-2
  • ARM MCU嵌入式開發——基於國產GD32F10x芯片(微課視頻版)-preview-3
ARM MCU嵌入式開發——基於國產GD32F10x芯片(微課視頻版)-preview-1

商品描述

本書深入淺出地講解嵌入式系統開發的基礎知識,從原理、方法、工程實踐等多視角介紹ARM MCU嵌入式開發中的各種常用技術,為每個知識點配備了開發案例(配套電子資源有詳實註釋的代碼),使讀者既能掌握工程開發方法,又能掌握技術原理,為後續整個技術生涯奠定堅實基礎。 本書共13章,前兩章講述基本概念、開發環境準備以及ARM Cortex-M3架構;第3~5章講述基礎的GPIO、中斷機制和定時器機制;第6~9章講述常用的通信方法,包括串行通信、IIC、SPI、CAN;第10章講述ADC\DAC的原理與應用,第11章進一步講述如何通過DMA技術進行ADC採樣;第12章專門講解各種常用的電機控制原理與方法;第13章通過一個三自由度機械臂的綜合案例統領全書內容,為讀者講述如何在IT工程管理方法指導下完成嵌入式項目開發。 本書由多位十數年嵌入式研發與教學經驗的高校教師、企業工程師組成的團隊共同編著完成,所有案例都是基於國產GD32F10x系列芯片實現,並且為每章都配套率詳細的視頻講解,助力讀者輕松零基礎入門並精通ARM MCU開發。本書既可作為高等院校和培訓機構相關專業的教學參考書,也可供正在為Arm芯片選擇國產替代方案的企業工程師選作技術參考書。

目錄大綱

 

目錄

 

 

 

 

 

 

配套課件(PPT)

 

 

 

 

 

源碼及原理圖

 

 

 

 

 

第1章概述(112min)

 

1.1理解嵌入式系統的概念

 

1.1.1什麽是嵌入式系統

 

1.1.2嵌入式系統的構成原理

 

1.1.3嵌入式系統的分類

 

1.1.4嵌入式系統的處理器技術簡介

 

1.2ARM簡史

 

1.2.1ARM的發展歷程

 

1.2.2ARM架構的變遷

 

1.2.3ARM嵌入式開發的學習路線

 

1.3準備工作

 

1.3.1教材配套開發板介紹

 

1.3.2開發環境準備

 

1.3.3創建GD32F10x模板工程——點亮一個LED

 

1.4小結

 

1.5練習題

 

1.6實驗: 更改模板工程軟件,點亮兩個LED

 

第2章GD32F10x的架構(99min)

 

2.1圖靈機與電腦架構

 

2.1.1圖靈機簡介

 

2.1.2馮·諾依曼結構與哈佛結構

 

2.1.3算術邏輯部件與鎖存器

 

2.2CortexM3架構簡介

 

2.2.1架構總覽

 

2.2.2CortexM3的重點模塊

 

2.2.3ARM指令集與三級流水線

 

2.2.4存儲器映射

 

2.3GD32F10x對CortexM3架構的實現

 

2.3.1總體架構

 

2.3.2存儲器與映射

 

2.3.3啟動配置

 

2.3.4電源控制

 

2.3.5復位

 

2.3.6時鐘控制

 

2.4小結

 

2.5練習題

 

 

 

 

 

 

 

第3章通用輸入/輸出埠GPIO(184min)

 

3.1芯片的常用封裝

 

3.2GPIO工作原理

 

3.2.1內部結構框圖

 

3.2.2輸出工作模式

 

3.2.3輸入工作模式

 

3.3GPIO主要寄存器簡介

 

3.3.1埠控制寄存器

 

3.3.2埠輸入狀態寄存器(GPIOx_ISTAT,x=A..G)

 

3.3.3埠輸出控制寄存器(GPIOx_OCTL,x=A..G)

 

3.3.4埠位操作與位清除寄存器

 

3.3.5埠配置鎖定寄存器(GPIOx_LOCK,x=A,B)

 

3.3.6AFIO埠配置寄存器0(AFIO_PCF0)

 

3.4GPIO常用庫函數介紹

 

3.4.1初始化函數

 

3.4.2輸入輸出控制函數

 

3.4.3狀態查詢函數

 

3.5GPIO案例: 按鍵控制LED亮滅

 

3.5.1案例需求

 

3.5.2案例方法

 

3.5.3案例代碼

 

3.5.4效果分析

 

3.6小結

 

3.7練習題

 

3.8實驗: 物理按鍵軟件消抖

 

3.8.1實驗目標

 

3.8.2實驗方法分析

 

3.8.3實驗代碼

 

3.8.4實驗現象

 

第4章中斷和事件(107min)

 

4.1中斷的概念

 

4.2嵌套向量中斷控制器NVIC

 

4.2.1NVIC簡介

 

4.2.2NVIC工作機制

 

4.2.3NVIC配置

 

4.3EXTI外部中斷/事件控制器

 

4.3.1EXTI簡介

 

4.3.2EXTI原理

 

4.3.3EXTI通用IO映像

 

4.3.4EXTI使用方法

 

4.4EXTI外部中斷處理的常用庫函數簡介

 

4.4.1初始化或使能相關函數

 

4.4.2EXTI外部中斷響應處理相關函數

 

4.5中斷案例: 中斷式觸摸按鍵控制LED

 

4.5.1案例需求

 

4.5.2案例方法

 

4.5.3案例代碼

 

4.5.4效果分析

 

4.6小結

 

4.7練習題

 

4.8實驗: 上升沿和雙邊沿觸發的中斷

 

4.8.1實驗目標

 

4.8.2實驗方法分析

 

4.8.3實驗代碼

 

4.8.4實驗現象

 

第5章定時器(439min)

 

5.1理解定時器

 

5.1.1可編程定時/計數器

 

5.1.2理解GD32F10x的時鐘樹

 

5.2系統滴答定時器SysTick

 

5.2.1SysTick的工作原理

 

5.2.2SysTick的使用方法

 

5.2.3SysTick案例: SysTick控制LED閃爍

 

5.3實時時鐘

 

5.3.1RTC的原理

 

5.3.2常用庫函數

 

5.3.3RTC的使用方法

 

5.3.4RTC案例——RTC日歷

 

5.4看門狗

 

5.4.1獨立看門狗

 

5.4.2窗口看門狗

 

5.4.3看門狗案例——獨立看門狗使用示例

 

5.5定時器

 

5.5.1基本定時器

 

5.5.2通用定時器

 

5.5.3高級定時器

 

5.5.4定時器使用

 

5.6小結

 

5.7練習題

 

5.8實驗: PWM實現呼吸燈效果

 

5.8.1實驗目標

 

5.8.2實驗方法分析

 

5.8.3實驗代碼

 

5.8.4實驗現象

 

第6章通用同步/異步串行通信USART(160min)

 

6.1串行通信原理概述

 

6.1.1串行通信的硬件連接

 

6.1.2異步串行通信的數據幀

 

6.2GD32F10x的串口工作原理

 

6.2.1USART的結構框圖

 

6.2.2利用庫函數設置和使用串口

 

6.3UART案例: 以串口查詢方式發送數據

 

6.3.1案例目標

 

6.3.2案例方法

 

6.3.3案例代碼

 

6.3.4效果分析

 

6.4小結

 

6.5練習題

 

6.6UART實驗: UART的中斷式接收

 

6.6.1實驗目標

 

6.6.2實驗方法分析

 

6.6.3實驗代碼

 

6.6.4實驗現象

 

第7章集成電路總線I2C通信(350min)

 

7.1理解I2C

 

7.1.1I2C的物理層

 

7.1.2I2C的協議層

 

7.2GD32的I2C模塊

 

7.2.1數據有效性

 

7.2.2開始與停止狀態

 

7.2.3時鐘同步和仲裁

 

7.2.4編程模型

 

7.2.5DMA模式下數據傳輸

 

7.2.6報文錯誤校驗

 

7.2.7狀態、錯誤和中斷

 

7.3I2C案例: 軟件模擬I2C控制LM75AD

 

7.3.1案例目標

 

7.3.2案例方法

 

7.3.3案例代碼

 

7.3.4效果分析

 

7.4小結

 

7.5練習題

 

7.6I2C實驗: 硬件I2C控制OLED屏顯示

 

7.6.1實驗目標

 

7.6.2實驗方法分析

 

7.6.3實驗代碼

 

7.6.4實驗現象

 

第8章串行外設SPI(252min)

 

8.1認識SPI

 

8.1.1SPI協議原理概述

 

8.1.2一主一從的SPI通信過程

 

8.1.3一主多從的SPI連接方式

 

8.2GD32中的SPI外設

 

8.2.1功能框圖

 

8.2.2模式配置

 

8.3SPI案例: 軟件模擬SPI讀寫W25Qxx

 

8.3.1案例目標

 

8.3.2案例方法

 

8.3.3案例代碼

 

8.3.4效果分析

 

8.4小結

 

8.5練習題

 

8.6SPI案例: 硬件SPI操作W25Q32

 

8.6.1實驗目標

 

8.6.2實驗方法分析

 

8.6.3實驗代碼

 

8.6.4實驗現象

 

第9章控制器局域網(170min)

 

9.1理解CAN

 

9.1.1CAN協議簡介

 

9.1.2CAN協議的物理層

 

9.1.3CAN協議的數據鏈路層

 

9.1.4CAN的位同步

 

9.2GD32的CAN外設

 

9.2.1一般使用流程

 

9.2.2工作與通信模式

 

9.2.3數據收發

 

9.2.4過濾功能

 

9.2.5中斷

 

9.3小結

 

9.4練習題

 

9.5CAT實驗: 自回環通信模式案例

 

9.5.1實驗目標

 

9.5.2實驗方法分析

 

9.5.3實驗代碼

 

9.5.4實驗現象

 

第10章模數轉換器(142min)

 

10.1ADC一般概念

 

10.1.1模擬信號與數字信號

 

10.1.2模數原理概述

 

10.2GD32F10x的ADC外設

 

10.2.1ADC電源與時鐘

 

10.2.2ADC通道和轉換順序

 

10.2.3運行模式

 

10.2.4採樣時間與外部觸發配置

 

10.3ADC庫函數的使用

 

10.3.1常用庫函數

 

10.3.2利用庫函數實現ADC步驟

 

10.4小結

 

10.5練習題

 

10.6ADC實驗: 測量光敏電阻的阻值

 

10.6.1實驗目標

 

10.6.2實驗方法分析

 

10.6.3實驗代碼

 

10.6.4實驗現象

 

第11章直接數據存儲DMA(160min)

 

11.1概述

 

11.2DMA控制器原理

 

11.2.1理解DMA框圖

 

11.2.2MDA寄存器

 

11.2.3DMA傳輸過程

 

11.3GD32F10x的DMA

 

11.3.1GD32F10x的DMA原理框圖

 

11.3.2DMA傳輸功能要點

 

11.3.3DMA流程解析

 

11.4小結

 

11.5練習題

 

11.6DMA實驗: DMA ADC搖桿用法

 

11.6.1實驗目標

 

11.6.2實驗方法分析

 

11.6.3實驗代碼

 

11.6.4實驗現象

 

第12章電機控制入門(248min)

 

12.1舵機

 

12.1.1構成原理

 

12.1.2使用方法

 

12.1.3舵機案例: 旋轉編碼器控制舵機旋轉

 

12.2步進電機

 

12.2.1工作原理

 

12.2.2步進電機驅動ULN2003

 

12.3小結

 

12.4練習題

 

12.5步進電機實驗: 步進電機正反轉控制

 

12.5.1實驗目標

 

12.5.2實驗方法分析

 

12.5.3實驗代碼

 

12.5.4實驗現象

 

參考文獻