嵌入式技術應用項目式教程(STM32版)
內容描述
本書基於ST公司的STM32芯片進行講解,包括8個項目、20個任務,分別介紹了LED控制設計與實現—點亮一個LED燈、籃球賽計分器設計與實現、數字時鐘設計與實現、簡易電壓表設計與實現、Modbus-RTU通信協議設計與實現、直流電機調速設計與實現、旋轉線陣LED時鐘設計與實現、簡易示波器設計與實現,涵蓋了STM32嵌入式系統的基本知識和嵌入式應用開發的基本內容。本書可作為高等院校和高職院校嵌入式、物聯網、應用電子和電子信息技術等專業嵌入式課程的教材,也可作為職業院校技能大賽和全國大學生電子設計競賽的培訓用書,同時也可供智能電子產品製作愛好者自學使用。
目錄大綱
項目1 LED控制設計與實現―點亮一個LED燈 (1)
1.1 STM32概述 (2)
1.1.1 什麼是STM32 (2)
1.1.2 什麼是STM32F103VET6 (2)
1.1.3 STM32F103VET6的性能 (3)
1.2 STM32開發環境介紹 (3)
1.2.1 STM32的集成開發環境 (3)
1.2.2 STM32的硬件仿真器 (4)
1.3 STM32開發固件庫 (4)
1.3.1 標準外設固件庫 (5)
1.3.2 HAL庫和LL庫 (5)
1.3.3 第三方固件庫 (5)
1.4 點亮一個LED燈 (5)
任務1-1 安裝Keil MDK (5)
任務1-2 使用已有工程點亮LED燈 (9)
任務1-3 實現一個LED燈閃爍 (13)
任務1-4 實現流水燈 (13)
1.5 總結 (15)
學習鞏固與考核 (16)
項目2 籃球賽計分器設計與實現 (21)
2.1 STM32F103最小系統 (21)
2.1.1 復位電路 (22)
2.1.2 時鐘電路 (22)
2.1.3 啟動電路 (23)
2.2 STM32 GPIO的使用 (23)
2.2.1 GPIO概述 (23)
2.2.2 GPIO輸出功能的使用 (24)
2.2.3 GPIO輸入功能的使用 (26)
任務2-1 用按鍵控制LED燈 (26)
2.3 數碼管的使用 (27)
2.3.1 數碼管簡介 (27)
2.3.2 數碼管的驅動電路 (28)
2.3.3 GPIO端口的重定向 (29)
2.3.4 數碼管的靜態顯示 (32)
2.3.5 數碼管的動態顯示 (32)
任務2-2 用數碼管顯示單個數字 (32)
任務2-3 用數碼管顯示多個數字 (33)
任務2-4 籃球賽計分器的實現 (34)
2.4 總結 (36)
學習鞏固與考核 (37)
項目3 數字時鐘設計與實現 (42)
3.1 STM32時鐘系統 (42)
3.2 定時器概述 (44)
3.3 TIM2的使用 (44)
3.3.1 TIM2簡介 (44)
3.3.2 TIM2的具體使用 (44)
任務3-1 實現以1Hz頻率閃爍的LED燈(查詢法) (45)
3.4 定時器中斷 (47)
3.4.1 中斷概述 (47)
3.4.2 STM32中斷系統簡介 (48)
3.4.3 TIM2中斷的使用 (48)
任務3-2 秒錶 (49)
3.5 外部中斷 (53)
任務3-3 用按鍵控制流水燈 (54)
任務3-4 數字時鐘的實現 (55)
3.6 總結 (59)
學習鞏固與考核 (60)
項目4 簡易電壓表設計與實現 (65)
4.1 電壓採集的意義 (65)
4.2 ADC分類、原理及性能參數 (66)
4.2.1 常見ADC的分類及其原理 (66)
4.2.2 ADC的性能參數 (66)
4.3 片上ADC的使用 (67)
4.3.1 片上ADC的典型性能參數 (67)
4.3.2 片上ADC的基本功能 (67)
4.3.3 片上ADC的中斷 (69)
任務4-1 使用電位器對LED燈亮滅數量進行控制 (69)
4.4 在數碼管上顯示小數的方法 (71)
任務4-2 在數碼管上顯示小數 (71)
任務4-3 實現簡易電壓表 (74)
4.5 總結 (76)
學習鞏固與考核 (77)
項目5 Modbus-RTU通信協議設計與實現 (81)
5.1 UART概述 (81)
5.1.1 串行通信與並行通信 (82)
5.1.2 UART的主要指標 (82)
5.1.3 STM32片上USART/UART的使用 (83)
5.1.4 USART/UART的中斷 (84)
任務5-1 STM32發送“hello”到PC (86)
5.2 常見UART通信電平 (89)
5.2.1 TTL電平 (89)
5.2.2 RS-232電平 (89)
5.2.3 RS-485/RS-422電平 (90)
任務5-2 PC控制數碼管顯示 (91)
5.3 Modbus-RTU協議 (93)
5.3.1 通信協議概述 (93)
5.3.2 Modbus-RTU協議解析 (93)
5.3.3 Modbus-RTU 03功能碼 (95)
5.3.4 Modbus-RTU 06功能碼 (95)
5.3.5 Modbus-RTU 16功能碼 (96)
任務5-3 實現支持03、06功能碼的Modbus-RTU從站 (96)
5.4 Modbus-RTU代碼實現方法 (103)
5.5 總結 (103)
學習鞏固與考核 (104)
項目6 直流電機調速設計與實現 (108)
6.1 直流電機驅動原理 (108)
6.1.1 直流電機概述 (108)
6.1.2 直流電機驅動電路 (109)
6.1.3 集成直流電機驅動器 (109)
6.2 PWM的使用 (110)
6.2.1 PWM概述 (110)
6.2.2 STM32生成PWM (110)
任務6-1 調光LED燈 (111)
6.3 直流電機調速的實現 (113)
任務6-2 直流電機調速 (115)
6.4 總結 (118)
學習鞏固與考核 (119)
項目7 旋轉線陣LED時鐘設計與實現 (121)
7.1 旋轉線陣LED簡介 (121)
7.2 旋轉線陣LED時鐘設計要求 (121)
7.3 總體設計 (122)
7.4 DS1302的使用 (122)
7.4.1 DS1302簡介 (122)
7.4.2 DS1302硬件電路設計 (122)
7.4.3 DS1302通信協議解析 (123)
7.4.4 DS1302模塊化程序 (124)
7.5 旋轉線陣LED的實現 (127)
7.6 總結 (135)
學習鞏固與考核 (136)
項目8 簡易示波器設計與實現 (138)
8.1 示波器簡介 (138)
8.2 簡易示波器參數要求 (138)
8.3 簡易示波器總體設計 (138)
8.4 簡易示波器硬件設計 (139)
8.4.1 電源電路 (139)
8.4.2 信號調理電路 (140)
8.4.3 其他硬件電路 (141)
8.5 簡易示波器軟件設計 (142)
8.5.1 TFT屏顯示 (142)
8.5.2 ADC及DMA (144)
8.5.3 其他 (146)
8.5.4 效果展示 (148)
8.6 總結 (148)
學習鞏固與考核 (149)
附錄A 開發板原理圖 (151)
附錄B STM32CubeMX基礎 (156)
附B. 1 STM32CubeMX簡介 (156)
附B. 2 安裝STM32CubeMX (156)
附B. 3 STM32CubeMX使用實例 (157)
作者介紹
魏麗君, 湖南鐵道職業技術學院軌道交通智能控制學院副教授,有著豐富的教學及企業實踐工作經驗,主持多項國家教學資源庫課程建設,指導學生參加電子產品設計及製作職業院校技能大賽並獲獎。