出版時間:2012-4 出版社:中國電力出版社 作者:廖義奎 頁數(shù):432
Tag標(biāo)簽:無
前言
在科研項目研究、產(chǎn)品開發(fā)、畢業(yè)設(shè)計以及電子競賽等活動中,經(jīng)常遇到8位單片機速度、I/O口、內(nèi)部RAM以及內(nèi)部Flash不夠用等問題。隨著32位微控制器成本的降低,采用32位微控制器作為8位單片機系統(tǒng)的升級與更新?lián)Q代已成為最佳選擇,特別是內(nèi)部帶Flash的低成本ARM微控制器的使用,以接近8位單片機的成本即可獲取更高性能?! ∧壳霸S多IC廠商都推出了內(nèi)部帶Flash的低成本32位 ARM微控制器,例如ARM Cortex-M3系列微控制器。它具有兩個很重要的特點,一是低成本,二是高性能。在成本方面,價格與8位/16位微控制器相差不多;內(nèi)帶Flash,不需要外接ROM,簡化了設(shè)計,電路更簡潔。在高性能方面,運算速度快,例如以Cortex-M3為內(nèi)核的STM32F2系列微控制器,內(nèi)核主頻高達120MHz,內(nèi)部帶有硬件乘法器、硬件除法器、以太網(wǎng)控制器、支持USB 2.0接口等。由此可見,32位微控制器在性能上是8位、16位微控制器無法比擬的?! ≡诖a的大小方面,ARM Cortex-M3微控制器提供優(yōu)于8位和16位體系結(jié)構(gòu)的代碼密度。在減少對內(nèi)存的需求和最大限度地提高片上閃存的使用率方面,都具有很大的優(yōu)勢?! TM32F103微控制器構(gòu)建于高性能的ARM Cortex-M3內(nèi)核,工作頻率為72MHz,內(nèi)置高速存儲器(最高可達1M字節(jié)的閃存和128K字節(jié)的SRAM),豐富的增強型I/O端口和連接到兩條APB總線的外設(shè)。增強型器件都包含2~3個12位的ADC、4個通用16位定時器和2個PWM定時器。 成本低,該系列微控制器與常見的8位、16位單片機在價格上基本接近。既有32位單片機的性能,又與8位、16位單片機價格相當(dāng),可直接代替8位/16位單片機應(yīng)用于一些小型控制系統(tǒng)中。 體積小,可把該應(yīng)用系統(tǒng)的PCB面積壓縮到最小,以便應(yīng)用到小體積的產(chǎn)品中,例如智能繼電器、微型水位控制器、恒溫控制器等?! ⌒阅芨撸瑯?biāo)準(zhǔn)和先進的通信接口:5個USART接口、3個SPI接口、2個I2C接口、2個I2S接口、1個SDIO接口、一個USB接口和一個CAN接口。STM32F103是一個完整的系列,其成員之間引腳對引腳完全兼容,軟件和功能也兼容?! CC編譯器是一套以GPL及LGPL許可證發(fā)行的開源、自由軟件。GCC編譯器是移植到中央微控制器架構(gòu)以及操作系統(tǒng)最多的編譯器。由于GCC已成為GNU系統(tǒng)的官方編譯器(包括GNU/Linux),它也成為編譯與建立其他操作系統(tǒng)的主要編譯器,包括Linux系列、BSD系列、Mac OS X、NeXTSTEP與BeOS等?! CC通常是跨平臺軟件首選的編譯器。有別于一般局限于特定系統(tǒng)與執(zhí)行環(huán)境的編譯器,GCC在所有平臺上都使用同一個前端處理程序,產(chǎn)生一樣的中間代碼,此中間代碼在各個不同的平臺上都一致,并可輸出正確無誤的最終代碼?! CC功能強大、性能優(yōu)越,并且開放源代碼,用戶可以免費使用,從而降低了開發(fā)成本。
內(nèi)容概要
《Cortex-M3之STM32嵌入式系統(tǒng)設(shè)計》介紹了以ARMCortex-M3為內(nèi)核的STM32F103增強型微控制器的特點,深入講解其硬件和軟件設(shè)計方法。本書分為STM32基礎(chǔ)開發(fā)、STM32深入開發(fā)以及STM32高級開發(fā)三部分?;A(chǔ)開發(fā)部分介紹了嵌入式系統(tǒng)概述、STM32最小系統(tǒng)設(shè)計、STM32程序設(shè)計入門、GPIO應(yīng)用、GCC編譯器的安裝與應(yīng)用、STM32外部中斷、面向?qū)ο笤O(shè)計的本質(zhì)、USART通信等內(nèi)容;深入開發(fā)部分介紹了深入STM32的工作原理、定時器與日歷、ADC應(yīng)用、DMA應(yīng)用、備份寄存器與看門狗程序、TFT驅(qū)動與顯示、觸摸屏驅(qū)動、SD卡驅(qū)動與FAT文件系統(tǒng)等;在高級開發(fā)部分介紹?C/OS-II在STM32上的移植、漢字與圖形圖像顯示、攝像頭驅(qū)動與圖像采集、以太網(wǎng)及Web遠程控制系統(tǒng)設(shè)計等內(nèi)容。
本書配套光盤中附有所有章節(jié)的源程序。本書適合于嵌入式開發(fā)人員作為開發(fā)參考資料,也適合于高校師生作為單片機、嵌入式系統(tǒng)課程的教材和教學(xué)參考書。
書籍目錄
前言
第1章 概述
1.1 嵌入式系統(tǒng)定義
1.2 嵌入式系統(tǒng)的發(fā)展
1.2.1 從單片機到嵌入式系統(tǒng)
1.2.2 從芯片級設(shè)計到系統(tǒng)級設(shè)計
1.2.3 從面向器件到面向任務(wù)的設(shè)計
1.2.4 從單處理器設(shè)計到多處理器設(shè)計
1.3 嵌入式系統(tǒng)的應(yīng)用
1.4 ARM系列嵌入式系統(tǒng)處理器
1.4.1 ARM處理器分類
1.4.2 ARM Cortex處理器
1.4.3 ARM Coretx-M3處理器
1.4.4 ARM Cortex-A8處理器
1.5 從8/16位處理器到ARM Cortex-M3/M
1.6 常見的Cortex-M0/M3系列MCU
第2章 STM32最小系統(tǒng)設(shè)計
2.1 STM32F103C最小系統(tǒng)設(shè)計方案
2.2 最小系統(tǒng)設(shè)計的要素
2.2.1 STM32外部晶振
2.2.2 復(fù)位電路
2.2.3 LED、Key及BOOT跳線
2.2.4 穩(wěn)壓電源及ISP下載口
2.2.5 IO端口
2.3 PCB圖設(shè)計
第3章 STM32程序設(shè)計入門
3.1 STM32入門之Hello World程序
3.1.1 開發(fā)環(huán)境
3.1.2 編寫STM32的C程序
3.1.3 用GCC編譯stm32程序
3.1.4 STM32程序下載
3.1.5 在Obtain_Studio中編譯Hello World程序
3.2 不同開發(fā)板的Hello World程序
3.3 基于STM32固件庫的入門程序
3.3.1 STM32固件庫
3.3.2 STM32固件庫外設(shè)的初始化和設(shè)置
3.3.3 基于STM32固件庫的程序設(shè)計
3.4 基于STM32固件庫的Hello World程序代碼分析
第4章 GPIO應(yīng)用
4.1 認(rèn)識STM32 GPIO
4.1.1 GPIO功能特點
4.1.2 STM32 IO口的優(yōu)點
4.1.3 STM32固件庫中提供的GPIO庫函數(shù)
4.2 KEY_LED程序
4.2.1 創(chuàng)建stm32_C++KEY_LED項目
4.2.2 stm32_C++KEY_LED項目程序分析
4.3 低層代碼分析
4.3.1 GPIO端口的定義
4.3.2 AHB/APB橋的配置
4.3.3 GPIO引腳的配置
4.3.4 GPIO的讀寫
第5章 GCC編譯器的安裝與應(yīng)用
5.1 GCC介紹
5.1.1 GCC概述
5.1.2 MinGW簡介
5.1.3 MinGW的安裝
5.1.4 MinGW測試
5.1.5 常見GCC用法
5.2 ARM GCC編譯器
5.2.1 WinARM編譯器
5.2.2 Sourcery G++ Lite for ARM EABI編譯器
5.3 Obtain_Studio集成開發(fā)系統(tǒng)
5.3.1 Obtain_Studio集成開發(fā)系統(tǒng)介紹
5.3.2 Obtain_Studio集成開發(fā)系統(tǒng)常用技巧
5.4 GCC Make編譯文件設(shè)計
5.4.1 GCC Make常用命令
5.4.2 makefile文件規(guī)則
5.4.3 makefile文件函數(shù)
5.5 GCC編譯器LD腳本
5.5.1 C/C++程序內(nèi)存空間
5.5.2 GCC LD腳本基礎(chǔ)
5.5.3 STM32程序中的LD腳本程序
第6章 STM32外部中斷
6.1 STM32外部中斷
6.2 STM32外部中斷實例
6.3 STM32中斷配置
6.3.1 STM32外部中斷程序分析
6.3.2 中斷通道配置
6.3.3 中斷優(yōu)先級配置
6.3.4 外部中斷模式配置
6.3.5 外部中斷響應(yīng)函數(shù)配置
第7章 面向?qū)ο蟪绦蛟O(shè)計
7.1 程序風(fēng)格
7.1.1 程序風(fēng)格的比較
7.1.2 編程風(fēng)格在程序設(shè)計中的作用
7.2 跨越開發(fā)板
7.2.1 端口映射的方法
7.2.2 模式設(shè)置的方法
7.3 分類與封裝
7.3.1 什么是分類與封裝
7.3.2 封裝的實現(xiàn)
7.4 隱藏與權(quán)限
7.4.1 隱藏
7.4.2 權(quán)限
7.5 繼承
7.5.1 CGpio類的繼承
7.5.2 測試CLed和CKey類
7.6 組裝
7.6.1 GPIO的組裝
7.6.2 GPIO組裝的測試
7.7 C++在嵌入式系統(tǒng)中的應(yīng)用
7.7.1 C++介紹
7.7.2 兼容C語言
7.7.3 在C++程序中調(diào)用C函數(shù)
7.7.4 面向?qū)ο蟪绦蛟O(shè)計語言
7.7.5 泛型編程語言
7.7.6 STL編程
7.7.7 接口編程
第8章 USART通信
8.1 從51單片機到STM32的串口通信
8.2 USART通用串口通信設(shè)計
8.2.1 USART通用串口
8.2.2 USART通用串口通信設(shè)計方案
8.3 USART通用串口程序設(shè)計入門
8.3.1 USART數(shù)據(jù)發(fā)送程序設(shè)計
8.3.2 USART數(shù)據(jù)接收程序設(shè)計
8.4 中斷方式的數(shù)據(jù)接收
8.4.1 中斷方式的數(shù)據(jù)接收程序設(shè)計
8.4.2 多個串口驅(qū)動對象的協(xié)同工作
8.5 USART驅(qū)動程序的設(shè)計
8.5.1 USART驅(qū)動程序
8.5.2 printf與cout的實現(xiàn)
8.6 深入STM32 USART的工作原理
8.6.1 USART工作原理
8.6.2 發(fā)送器
8.6.3 接收器
8.6.4 USART初始化函數(shù)USART_Init
8.6.5 USART波特率的計算方法
第9章 STM32的工作原理
9.1 STM32啟動原理
9.1.1 STM32啟動過程分析
9.1.2 STM32軟件復(fù)位與功耗控制
9.2 系統(tǒng)時鐘分析
9.2.1 系統(tǒng)時鐘種類
9.2.2 STM32固件庫設(shè)置時鐘
9.2.3 系統(tǒng)時鐘配置
9.3 存儲器以及存儲器映射
9.4 NVIC嵌套中斷向量控制器
9.4.1 NVIC嵌套中斷向量控制器
9.4.2 STM32的NVIC優(yōu)先級
9.5 STM32向量表及配置
9.5.1 STM32復(fù)位后從哪個地址開始執(zhí)行
9.5.2 STM32向量表
9.5.3 用戶程序中的向量表
第10章 定時器與日歷
10.1 SysTick定時器
10.1.1 關(guān)于SysTick
10.1.2 SysTick測試程序
10.1.3 SysTick程序分析
10.2 RTC定時器
10.2.1 RTC定時器介紹
10.2.2 RTC的本質(zhì)與測試程序
10.2.3 日歷算法
10.2.4 STM32的RTC日歷測試程序
10.2.5 STM32 RTC程序分析
10.2.6 RTC秒中斷
10.2.7 RTC鬧鐘
10.2.8 RTC校準(zhǔn)
10.3 通用定時器
10.3.1 STM32定時器的種類
10.3.2 通用定時器介紹
10.3.3 通用定時器基本應(yīng)用程序設(shè)計
10.3.4 通用定時器常用模式
10.3.5 輸出模式測試實例
10.3.6 輸入捕獲模式測試實例
第11章 ADC應(yīng)用
11.1 ADC與數(shù)字信號處理系統(tǒng)設(shè)計
11.1.1 數(shù)字信號處理系統(tǒng)設(shè)計
11.1.2 STM32簡單的ADC應(yīng)用實例
11.1.3 過采樣技術(shù)
11.1.4 欠采樣技術(shù)
11.2 STM32的ADC簡介
11.3 STM32 ADC入門實例
11.3.1 STM32 ADC入門測試程序
11.3.2 STM32 ADC程序分析
11.3.3 STM32內(nèi)部溫度測量
11.4 STM32 ADC注入方式
11.4.1 STM32 ADC注入方式簡介
11.4.2 STM32雙ADC模式
11.4.3 STM32 ADC注入方式實例
第12章 DMA應(yīng)用
12.1 STM32的DMA簡介
12.1.1 任務(wù)轉(zhuǎn)移策略
12.1.2 STM32的DMA功能
12.2 DMA在ADC中的應(yīng)用
12.2.1 任務(wù)轉(zhuǎn)移策略的DMA ADC應(yīng)用實例
12.2.2 DMA_ADC程序分析
12.3 DMA在USART中的應(yīng)用
12.3.1 任務(wù)轉(zhuǎn)移策略的USART DMA數(shù)據(jù)發(fā)送
12.3.2 任務(wù)轉(zhuǎn)移策略的USART DMA數(shù)據(jù)接收
12.3.3 任務(wù)隊列策略的USART DMA發(fā)送中斷應(yīng)用
12.3.4 任務(wù)循環(huán)策略的USART DMA接收中斷應(yīng)用
第13章 備份寄存器與看門狗程序
13.1 STM32備份寄存器
13.1.1 備份寄存器特點
13.1.2 BKP應(yīng)用實例
13.2 STM32看門狗
13.2.1 STM32看門狗介紹
13.2.2 獨立看門狗介紹
13.2.3 獨立看門狗程序設(shè)計
13.2.4 窗口看門狗介紹
13.2.5 窗口看門狗測試程序
第14章 TFT驅(qū)動與顯示
14.1 LCD概述
14.1.1 LCD簡介
14.1.2 LCD接口
14.2 Ili9xx系列TFT驅(qū)動芯片
14.3 TFT測試程序
14.3.1 TFT測試程序準(zhǔn)備工作
14.3.2 TFT測試主程序
14.3.3 字符的顯示
14.4 基于FSMC的TFT驅(qū)動程序設(shè)計
14.4.1 STM32的FSMC功能
14.4.2 FSMC與TFT端口連接與端口映射
14.4.3 FSMC與TFT的內(nèi)存空間映射與操作
14.4.4 FSMC初始化
14.4.5 TFT初始化
14.4.5 TFT驅(qū)動程序統(tǒng)一接口函數(shù)的實現(xiàn)
14.5 基于GPIO的TFT驅(qū)動程序設(shè)計
第15章 觸摸屏驅(qū)動
15.1 觸摸屏介紹
15.2 觸摸屏驅(qū)動IC
15.3 觸摸屏測試項目
15.4 觸摸屏驅(qū)動程序分析
15.5 觸摸屏校準(zhǔn)
15.5.1 觸摸屏校準(zhǔn)算法
15.5.2 觸摸屏校準(zhǔn)的實現(xiàn)
第16章 SD卡驅(qū)動與FAT文件系統(tǒng)
16.1 STM32的SDIO接口
16.1.1 常見存儲卡種類
16.1.2 SD卡結(jié)構(gòu)
16.1.3 STM32的SDIO接口
16.2 FAT文件系統(tǒng)
16.2.1 FAT文件系統(tǒng)概述
16.2.2 FatFs介紹
16.3 STM32 SDIO接口
16.4 SD卡文件讀寫實例
16.4.1 準(zhǔn)備工作
16.4.2 SD卡文件讀寫實例
16.4.3 SD卡文件操作類CFile的設(shè)計
16.4.4 目錄操作
第17章 μC/OS-Ⅱ在STM32上的移植
17.1 μC/OS-Ⅱ概述
17.1.1 μC/OS-Ⅱ簡介
17.1.2 μC/OS-Ⅱ的組成部分
17.2 μC/OS-Ⅱ移植到STM
17.3 μC/OS-Ⅱ工作原理
17.3.1 μC/OS-Ⅱ啟動過程
17.3.2 任務(wù)切換的相關(guān)函數(shù)解析
第18章 漢字與圖形圖像顯示
18.1 漢字顯示
18.1.1 漢字庫
18.1.2 程序中加入漢字庫實現(xiàn)漢字顯示
18.1.3 使用SD卡上的漢字庫實現(xiàn)漢字顯示
18.2 圖形繪制
18.3 圖像顯示
18.3.1 位圖與bmp文件格式
18.3.2 bmp文件操作
18.3.3 bmp圖像顯示測試程序
第19章 攝像頭驅(qū)動與圖像采集
19.1 攝像頭接口
19.1.1 圖像傳感器
19.1.2 OV7670攝像頭
19.1.3 CMOS攝像頭接口
19.2 CMOS攝像頭測試程序
19.3 深入CMOS攝像頭驅(qū)動程序原理
19.3.1 SCCB協(xié)議
19.3.2 SCCB協(xié)議驅(qū)動程序設(shè)計
19.3.3 CMOS攝像頭驅(qū)動程序設(shè)計
第20章 以太網(wǎng)及Web遠程控制系統(tǒng)設(shè)計
20.1 ENC28J60以太網(wǎng)控制器
20.2 網(wǎng)絡(luò)測試程序
20.2.1 Web Server測試
20.2.2 UDP通信測試
20.3 IP/ICMP協(xié)議與Ping命令的實現(xiàn)
20.3.1 以太網(wǎng)數(shù)據(jù)包結(jié)構(gòu)
20.3.2 IP協(xié)議
20.3.3 ICMP協(xié)議
20.3.4 Ping命令
20.3.5 Ping命令的實現(xiàn)
20.4 UDP通信原理
20.4.1 UDP協(xié)議
20.4.2 UDP通信的實現(xiàn)
20.5 Web Server程序設(shè)計
20.5.1 Web Server原理
20.5.2 TCP設(shè)計
20.5.3 Web Server設(shè)計
20.6 ENC28J60驅(qū)動程序設(shè)計
20.6.1 STM32 SPI接口
20.6.2 STM32 SPI驅(qū)動程序
20.6.3 ENC28J60驅(qū)動程序
參考文獻
章節(jié)摘錄
版權(quán)頁: 插圖: 1.1嵌入式系統(tǒng)定義 嵌入式系統(tǒng)即控制、監(jiān)視或者輔助裝置、機器和設(shè)備運行的裝置。這主要是從應(yīng)用上加以定義的,從中可以看出嵌入式系統(tǒng)是軟件和硬件的綜合體,還涵蓋了機械等附屬裝置。 目前國內(nèi)相關(guān)業(yè)者一個普遍認(rèn)同的定義是:以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),軟件硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計算機系統(tǒng)。 在構(gòu)成上,嵌入式系統(tǒng)以微處理器及軟件為核心部件,這兩者缺一不可。在特征上,嵌入式系統(tǒng)具有方便、靈活地嵌入到其他應(yīng)用系統(tǒng)的特征,即具有很強的可嵌入性。嵌入式系統(tǒng)本身是一個可獨立執(zhí)行的系統(tǒng),但更重要的是它可作為一個部件嵌入到其他應(yīng)用系統(tǒng)中。 按嵌入式微處理器類型劃分,嵌入式系統(tǒng)可分為以單片機為核心組成的嵌入式單片機系統(tǒng);以工業(yè)計算機板為核心組成的嵌入式計算機系統(tǒng);以DSP為核心組成的嵌入式數(shù)字信號處理器系統(tǒng);以FPGA及軟CPU(SOPC)為核心組成的嵌入式SOPC系統(tǒng)等。 由于嵌入式系統(tǒng)的內(nèi)容很廣,在含義上與傳統(tǒng)的單片機系統(tǒng)和計算機系統(tǒng)有很多重疊部分。為了方便區(qū)分,在實際應(yīng)用中通常給嵌入式系統(tǒng)加了一些不成文的約定: (1)嵌入式系統(tǒng)的微處理器通常是由32位及以上的RISC處理器組成,例如ARM、MIPS等。 (2)嵌入式系統(tǒng)的軟件系統(tǒng)通常是以嵌入式操作系統(tǒng)為核心,外加用戶應(yīng)用程序。 (3)嵌入式系統(tǒng)在特征上具有明顯的可嵌入性。 從狹義上說,嵌入式系統(tǒng)都應(yīng)該具備上述三個特征。從廣義上說,只要具備卜述三個特征中的部分特征,也可以看作是嵌入式系統(tǒng)。 1.2 嵌入式系統(tǒng)的發(fā)展 如今手機向智能化發(fā)展,電視向網(wǎng)絡(luò)化發(fā)展,這些都得益于嵌入式系統(tǒng)日新月異的發(fā)展。 1.2.1 從單片機到嵌入式系統(tǒng) 單片機在近二三十年里,已經(jīng)滲透到各個領(lǐng)域,并且與人們的日常生活密不可分,給人民生活和工業(yè)生產(chǎn)帶來極大方便。從信號采集、處理到傳輸都能由單片機來完成。 隨著互聯(lián)網(wǎng)時代的來臨,許多電子設(shè)備需要聯(lián)網(wǎng)和更智能化、更強的計算能力,比如音頻、視頻的數(shù)據(jù)采集、處理和傳輸,豐富的圖形界面等。單片機越來越不能滿足應(yīng)用對象的需求,開發(fā)工作也變得越來越復(fù)雜和龐大。
編輯推薦
《CortexM3之STM32嵌入式系統(tǒng)設(shè)計》的讀者需要具有一定的C/C++、單片機以及電子線路設(shè)計基礎(chǔ),適合于從事ARM嵌入式開發(fā)的工程開發(fā)人員、STM32的初學(xué)者作為參考資料,更適合于從事8位、16位MCU開發(fā),而又迫切需要跨越到32位MCU平臺的工程開發(fā)人員。也適合于高校師生作為課程設(shè)計、畢業(yè)設(shè)計以及電子設(shè)計競賽的培訓(xùn)和指導(dǎo)教材,以及作為本、??茊纹瑱C、嵌入式系統(tǒng)相關(guān)課程的教材。《CortexM3之STM32嵌入式系統(tǒng)設(shè)計》配套光盤中附有所有章節(jié)的源程序。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
Cortex-M3之STM32嵌入式系統(tǒng)設(shè)計 PDF格式下載