本書按照工作導(dǎo)向的思路,通過"學(xué)中做、做中學(xué)”,循序漸進(jìn)地講解微控制器、傳感器電路和STM32單片機(jī)軟件,傳授STM32單片機(jī)的外圍引腳特性、內(nèi)部結(jié)構(gòu)原理、片上外設(shè)資源、開發(fā)設(shè)計(jì)方法和應(yīng)用軟件編程等知識(shí),同時(shí)增加了嵌入式系統(tǒng)中的OS、文件系統(tǒng)、SD卡和U盤存儲(chǔ)、Net通訊等內(nèi)容,修訂后的教材解決了大多數(shù)學(xué)習(xí)ARM處理器的學(xué)生或者個(gè)人上手困難、傳統(tǒng)書籍抽象與難學(xué)的問題。但隨著技術(shù)的發(fā)展,原教材僅面向ARM Cortex-M3核進(jìn)行講解,而ARM Cortex-M核已發(fā)展到M4了,且集成度越來越高,嵌入式系統(tǒng)中的OS、文件系統(tǒng)、SD卡和U盤存儲(chǔ)、Net通訊等方面在原教材中都沒有涉及。
彭剛,博士,1973年10月生,湖北武漢人,F(xiàn)為華中科技大學(xué)自動(dòng)化學(xué)院副教授、中國電子學(xué)會(huì)高級(jí)會(huì)員、中國嵌入式系統(tǒng)產(chǎn)業(yè)聯(lián)盟和中國軟件行業(yè)嵌入式系統(tǒng)協(xié)會(huì)理事、嵌入式專家委員會(huì)委員、中國人工智能學(xué)會(huì)智能機(jī)器人專業(yè)委員會(huì)委員。學(xué)術(shù)專長包括:嵌入式系統(tǒng)、智能機(jī)器人系統(tǒng)、智能制造與制造執(zhí)行系統(tǒng)。在國內(nèi)外**和核心學(xué)術(shù)刊物上發(fā)表論文30余篇,獲發(fā)明專利3項(xiàng),實(shí)用新型專利7項(xiàng),湖北省自然科學(xué)獎(jiǎng)三等獎(jiǎng)1項(xiàng)。多次指導(dǎo)學(xué)生在中國機(jī)器人大賽、全國大學(xué)生智能車比賽、嵌入式系統(tǒng)設(shè)計(jì)比賽中獲得優(yōu)秀名次,并獲華中科技大學(xué)全國重大競賽和科技創(chuàng)新優(yōu)秀指導(dǎo)教師獎(jiǎng)。
目 錄
第1章 ARM Cortex-M3處理器編程環(huán)境與嵌入式系統(tǒng) (1)
1.1 單片機(jī)與ARM Cortex-M3處理器 (1)
1.2 基于ARM Cortex-M3的STM32單片機(jī)教學(xué)開發(fā)板 (5)
任務(wù)一 獲得軟件 (7)
任務(wù)二 安裝軟件 (8)
任務(wù)三 硬件連接 (9)
1.3 創(chuàng)建工程和執(zhí)行程序 (11)
任務(wù)四 你的第一個(gè)工程 (11)
任務(wù)五 你的第一個(gè)程序 (15)
任務(wù)六 下載可執(zhí)行文件到教學(xué)開發(fā)板 (18)
任務(wù)七 用串口調(diào)試軟件查看單片機(jī)輸出信息 (25)
任務(wù)八 做完實(shí)驗(yàn)關(guān)斷電源 (29)
工程素質(zhì)和技能歸納 (29)
第2章 STM32單片機(jī)I/O端口與伺服電機(jī)控制 (30)
2.1 STM32單片機(jī)的輸入/輸出端口 (30)
任務(wù)一 認(rèn)識(shí)封裝 (30)
任務(wù)二 單燈閃爍控制 (33)
2.2 STM32單片機(jī)的時(shí)鐘配置 (36)
2.3 STM32單片機(jī)的I/O端口配置 (45)
任務(wù)三 該你了―讓另一個(gè)LED閃爍 (58)
任務(wù)四 流水燈 (59)
2.4 STM32單片機(jī)I/O端口的應(yīng)用 (60)
任務(wù)五 機(jī)器人伺服電機(jī)控制信號(hào) (60)
任務(wù)六 計(jì)數(shù)并控制循環(huán)次數(shù) (63)
任務(wù)七 用你的計(jì)算機(jī)來控制機(jī)器人運(yùn)動(dòng) (66)
工程素質(zhì)和技能歸納 (68)
第3章 STM32單片機(jī)程序模塊化設(shè)計(jì)與機(jī)器人運(yùn)動(dòng)控制 (70)
3.1 STM32單片機(jī)程序調(diào)試方法 (70)
任務(wù)一 程序調(diào)試 (70)
3.2 STM32單片機(jī)程序模塊化設(shè)計(jì) (78)
任務(wù)二 基本巡航動(dòng)作 (79)
任務(wù)三 勻加速/減速運(yùn)動(dòng) (82)
任務(wù)四 用函數(shù)調(diào)用簡化運(yùn)動(dòng)程序 (84)
任務(wù)五 高級(jí)主題―用數(shù)組建立復(fù)雜運(yùn)動(dòng) (88)
工程素質(zhì)和技能歸納 (92)
第4章 STM32單片機(jī)中斷編程與機(jī)器人觸覺導(dǎo)航 (93)
4.1 STM32單片機(jī)按鍵輸入檢測 (93)
任務(wù)一 按鍵檢測 (94)
4.2 STM32單片機(jī)輸入端口的應(yīng)用 (95)
任務(wù)二 安裝并測試機(jī)器人的觸覺―胡須 (95)
任務(wù)三 基于胡須的機(jī)器人觸覺導(dǎo)航 (100)
任務(wù)四 機(jī)器人進(jìn)入死區(qū)后的人工智能決策 (103)
4.3 STM32單片機(jī)中斷編程 (107)
任務(wù)五 按鍵中斷 (112)
任務(wù)六 中斷方式測試機(jī)器人觸覺 (128)
工程素質(zhì)和技能歸納 (130)
第5章 STM32單片機(jī)輸入/輸出端口綜合應(yīng)用與紅外導(dǎo)航 (132)
任務(wù)一 搭建電路并測試紅外發(fā)射器和接收器 (133)
任務(wù)二 探測和避開障礙物 (137)
任務(wù)三 高性能的紅外導(dǎo)航 (140)
任務(wù)四 俯視的探測器 (143)
工程素質(zhì)和技能歸納 (146)
第6章 STM32單片機(jī)定時(shí)器編程與機(jī)器人的距離檢測 (147)
6.1 STM32單片機(jī)通用定時(shí)器 (147)
任務(wù)一 通用定時(shí)器控制LED閃爍 (155)
6.2 STM32單片機(jī)通用定時(shí)器的應(yīng)用 (158)
任務(wù)二 距離探測 (158)
任務(wù)三 尾隨小車 (162)
任務(wù)四 跟蹤條紋帶 (168)
6.3 STM32單片機(jī)高級(jí)控制定時(shí)器 (170)
任務(wù)五 高級(jí)控制定時(shí)器控制LED閃爍 (172)
任務(wù)六 使用高級(jí)控制定時(shí)器實(shí)現(xiàn)PWM控制 (174)
工程素質(zhì)和技能歸納 (182)
第7章 STM32單片機(jī)串口編程及其應(yīng)用 (183)
7.1 STM32單片機(jī)串行通信接口 (183)
任務(wù)一 編寫串口通信程序 (188)
7.2 串行RS-232電平與TTL電平轉(zhuǎn)換 (190)
任務(wù)二 串口Echo回應(yīng)程序 (194)
工程素質(zhì)和技能歸納 (198)
第8章 STM32單片機(jī)LCD顯示接口編程及其應(yīng)用 (199)
8.1 LCD介紹 (199)
任務(wù)一 認(rèn)識(shí)LCD模塊 (201)
8.2 STM32單片機(jī)LCD接口編程 (201)
任務(wù)二 編寫LCD模塊驅(qū)動(dòng)程序 (206)
任務(wù)三 用LCD顯示機(jī)器人運(yùn)動(dòng)狀態(tài) (209)
工程素質(zhì)和技能歸納 (213)
第9章 STM32單片機(jī)模數(shù)轉(zhuǎn)換編程及其應(yīng)用 (214)
9.1 A/D模數(shù)轉(zhuǎn)換介紹 (214)
任務(wù)一 認(rèn)識(shí)傳感器 (216)
9.2 STM32單片機(jī)A/D轉(zhuǎn)換編程 (217)
任務(wù)二 編寫A/D程序 (224)
任務(wù)三 環(huán)境溫度測量 (226)
工程素質(zhì)和技能歸納 (231)
第10章 STM32單片機(jī)DMA編程及其應(yīng)用 (232)
10.1 DMA介紹 (232)
10.2 STM32單片機(jī)DMA編程 (234)
任務(wù)一 利用DMA方式進(jìn)行A/D數(shù)據(jù)采集 (238)
任務(wù)二 DMA與USART、ADC、定時(shí)器綜合編程 (242)
工程素質(zhì)和技能歸納 (246)
第11 章 STM32單片機(jī)實(shí)時(shí)時(shí)鐘編程及其應(yīng)用 (247)
11.1 RTC實(shí)時(shí)時(shí)鐘介紹 (247)
任務(wù)一 進(jìn)一步認(rèn)識(shí)晶振 (249)
11.2 STM32單片機(jī)RTC的結(jié)構(gòu)和寄存器 (251)
11.3 STM32單片機(jī)的備份寄存器和電源控制寄存器 (255)
任務(wù)二 編寫RTC程序 (258)
任務(wù)三 RTC時(shí)間設(shè)置編程 (263)
任務(wù)四 鬧鐘提醒機(jī)器人編程 (271)
11.4 STM32單片機(jī)的侵入檢測 (275)
任務(wù)五 侵入檢測編程 (275)
11.5 STM32單片機(jī)的電源控制 (278)
任務(wù)六 電源控制編程 (281)
工程素質(zhì)和技能歸納 (284)
第12 章 STM32單片機(jī)看門狗編程及其應(yīng)用 (285)
12.1 看門狗介紹 (285)
12.2 STM32單片機(jī)獨(dú)立看門狗編程 (287)
任務(wù)一 獨(dú)立看門狗編程 (289)
任務(wù)二 認(rèn)識(shí)系統(tǒng)節(jié)拍定時(shí)器 (294)
12.3 STM32單片機(jī)窗口看門狗編程 (295)
任務(wù)三 窗口看門狗編程 (298)
工程素質(zhì)和技能歸納 (304)
第13 章 STM32單片機(jī)數(shù)模轉(zhuǎn)換編程及其應(yīng)用 (305)
13.1 D/A數(shù)模轉(zhuǎn)換介紹 (305)
13.2 STM32單片機(jī)D/A結(jié)構(gòu)和編程方法 (307)
13.3 STM32單片機(jī)D/A轉(zhuǎn)換編程 (316)
任務(wù)一 三角波生成 (316)
任務(wù)二 噪聲生成 (321)
任務(wù)三 自定義波形生成 (322)
工程素質(zhì)和技能歸納 (324)
附錄A 本書所用STM32教學(xué)開發(fā)板主要電路圖 (325)
附錄B 基于ARM Cortex-M3的STM32微控制器原理歸納 (333)
B.1 基于ARM Cortex-M3內(nèi)核的STM32F10x微控制器結(jié)構(gòu) (333)
B.2 存儲(chǔ)映像地址 (337)
B.3 芯片編號(hào)和引腳說明 (344)
附錄C STM32固件庫說明 (351)
附錄D 本書所使用的器材清單 (365)
參考文獻(xiàn) (367)