第1章 低成本單片機世界的入侵者——Cortex-M0 11.1 相比8位(16位)機為何要選擇Cortex-M0 11.1.1 性能對比 21.1.2 8位和16位體系結構的缺點 31.1.3 Cortex的軟件移植性 31.2 如何從8位機過渡到Cortex-M0 41.3 編程模型 71.3.1 處理器的模式 71.3.2 堆棧 81.3.3 內核寄存器 81.4 存儲器模型 111.4.1 存儲區(qū)、類型和屬性 121.4.2 存儲器系統(tǒng)的存儲器訪問次序 121.4.3 存儲器訪問的行為 131.4.4 軟件的存儲器訪問順序 131.5 異常模型 141.6 電源管理 191.7 指令集 201.8 Cortex-M0內核外設 231.9 STM32F0系列 231.10 小結 24第2章 開發(fā)軟件準備 252.1 MDK-ARM開發(fā)環(huán)境 252.1.1 ?Vision4 IDE 概述 252.1.2 編譯、調試現有MDK工程 262.1.3 創(chuàng)建一個Keil新項目 272.2 仿真器 362.2.1 ST-Link 362.2.2 J-Link與U-Link2 372.3 WinMerge 372.4 小結 39第3章 硬件基礎 403.1 STM32F0產品特征 403.2 系統(tǒng)及存儲器概述 413.2.1 系統(tǒng)構架 413.2.2 存儲器組織 423.2.3 啟動配置 423.3 電源控制(PWR) 433.3.1 電源 433.3.2 電源管理器 443.3.3 低功耗模式 453.3.4 PWR固件庫 463.4 復位和時鐘控制(RCC) 463.4.1 復位 463.4.2 時鐘 473.4.3 低功耗模式 513.5 RCC固件庫 523.6 硬件設計 533.7 小結 56第4章 STM32F0的固件庫 574.1 ARM的C語言 574.1.1 嵌入式C語言的幾個特殊之處 574.1.2 寄存器訪問方式總結 594.1.3 struct字節(jié)對齊 604.1.4 使用volatile 624.1.5 RAM中運行程序 624.1.6 軟件結構 644.2 CMSIS 654.2.1 CMSIS主要構成 654.2.2 使用CMSIS 664.3 STM32F0xx標準外設庫 674.3.1 標準外設庫概述 674.3.2 STM32F0xx外設驅動文件說明 684.3.3 STM32F0xx的CMSIS文件說明 694.3.4 庫文件夾說明 704.3.5 固件庫文件 714.3.6 MDK ARM中使用固件庫實例 744.4 小結 75第5章 通用I/O(GPIO) 765.1 GPIO引腳與功能 765.1.1 引腳描述 765.1.2 GPIO功能描述 775.1.3 通用I/O(GPIO) 795.1.4 I/O引腳的復用功能和重映射 795.1.5 外部中斷/喚醒線 805.1.6 輸入配置 805.1.7 輸出配置 805.1.8 復用功能配置 805.1.9 模擬配置 815.1.10 HSE或LSE引腳用作GPIO 815.1.11 備份域供電下GPIO引腳的使用 815.1.12 GPIO復用功能寄存器 815.2 GPIO固件庫 835.3 GPIO應用實例 845.4 小結 87第6章 中斷和事件 886.1 嵌套向量中斷控制器(NVIC) 886.1.1 NVIC概述 886.1.2 電平中斷和脈沖中斷 906.2 中斷和異常向量 916.3 擴展中斷和事件控制器(EXTI) 936.3.1 框圖 936.3.2 事件管理 946.3.3 功能說明 946.3.4 外部和內部中斷/事件線映像 956.4 EXTI固件庫 966.5 EXTI中斷實例 966.6 HardFault異常調試實例 986.7 小結 99第7章 通用同步異步收發(fā)器(USART) 1007.1 USART主要功能 1007.2 STM32F0x的USART功能實現 1017.3 USART功能描述 1027.3.1 USART框圖 1027.3.2 USART字符描述 1037.3.3 發(fā)送器 1047.3.4 接收器 1067.3.5 多機通信 1107.3.6 Modbus通信 1117.3.7 LIN(本地互聯網絡)模式 1127.3.8 USART同步模式 1137.3.9 單線半雙工通信 1147.3.10 RS-232硬件流控制和RS-485驅動使能 1147.4 USART中斷 1167.5 USART固件庫函數 1177.6 基于USART實現的多個通信標準 1217.7 接收不定長數據實例 1237.8 小結 125第8章 實時時鐘(RTC) 1268.1 主要特性 1268.2 STM32F0的RTC功能實現 1278.3 功能描述 1278.3.1 RTC框圖 1278.3.2 被RTC控制的GPIO 1288.3.3 時鐘和預分頻器 1288.3.4 實時時鐘和日歷 1288.3.5 可編程報警 1298.3.6 RTC初始化及配置 1298.3.7 讀日歷寄存器 1308.3.8 復位過程 1318.3.9 RTC同步 1318.3.10 RTC參考時鐘檢測 1318.3.11 RTC平滑數字校準 1328.3.12 時間戳功能 1328.3.13 侵入檢測 1328.3.14 校準時鐘輸出 1338.3.15 報警輸出 1348.4 RTC低功耗模式 1348.5 RTC中斷 1348.6 固件庫 1358.7 鬧鐘報警實例 1378.8 小結 141第9章 看門狗 1429.1 STM32F0看門狗概述 1429.2 獨立看門狗(IWDG) 1439.3 窗口看門狗(WWDG) 1459.4 固件庫 1469.4.1 IWDG API 1469.4.2 WWDG固件庫 1479.5 看門狗實例 1489.6 小結 149第10章 定時器 15010.1 STM32F0定時器實現 15010.2 功能描述 15110.2.1 時基單元 15210.2.2 計數器 15310.2.3 時鐘源 15410.2.4 捕獲/比較通道 15510.2.5 輸入捕獲模式 15610.2.6 強制輸出模式 15710.2.7 輸出比較模式 15710.2.8 PWM模式 15810.2.9 互補輸出和死區(qū)插入 16010.2.10 使用剎車功能 16110.2.11 產生六步PWM輸出 16210.2.12 編碼器接口模式 16310.3 固件庫 16410.4 SPWM實例 16810.5 小結 171第11章 模數轉換器(ADC) 17211.1 ADC主要特性 17211.2 ADC功能描述 17311.2.1 校準 17411.2.2 ADC開關控制 17411.2.3 ADC時鐘 17511.2.4 ADC配置 17611.2.5 通道選擇 17611.2.6 轉換模式 17611.2.7 啟動與停止轉換 17711.3 外部觸發(fā)和觸發(fā)極性 17811.4 數據管理 17911.5 低功耗特性 18011.6 ADC中斷 18111.7 ADC固件庫 18111.8 STM32F05x(07x)的DAC與比較器 18311.9 USB電壓監(jiān)測 18411.10 小結 186第12章 DMA控制 18712.1 DMA主要特性 18712.2 DMA功能描述 18712.2.1 DMA原理 18712.2.2 可編程的數據寬度、數據對齊方式和數據大小端 19012.2.3 錯誤管理 19012.2.4 中斷 19012.2.5 DMA請求映射 19012.3 固件庫 19112.4 基于DMA的ADC采樣 19212.5 小結 195第13章 串行外設接口/I2S音頻(SPI/I2S) 19613.1 簡介 19613.1.1 SPI主要特點 19613.1.2 SPI/I2S具體功能實現 19713.2 SPI功能描述 19713.2.1 SPI框圖 19713.2.2 一主、一從通信 19813.2.3 多從機通信 20013.2.4 從機選擇(NSS)的引腳管理 20013.2.5 通信格式 20113.2.6 SPI的初始化 20213.2.7 數據發(fā)送和接收流程 20213.2.8 狀態(tài)標志 20413.2.9 錯誤標志 20413.3 SPI中斷 20513.4 SPI固件庫 20613.5 SPI相互通信實例 20713.6 小結 209第14章 I2C接口 21014.1 I2C的主要特點 21014.2 I2C功能描述 21114.2.1 I2C1框圖 21114.2.2 I2C模式 21214.2.3 I2C的初始化 21214.2.4 數據收發(fā) 21314.2.5 I2C從機模式 21514.2.6 I2C主模式 21714.3 I2C中斷 21914.4 I2C固件庫 22014.5 讀/寫24C02實例 22114.6 小結 224第15章 控制器局域網bxCAN 22515.1 bxCAN概述 22515.2 bxCAN工作模式 22615.2.1 初始化模式 22715.2.2 正常模式 22715.2.3 睡眠模式(低功耗) 22815.2.4 測試模式 22815.2.5 靜默模式 22815.2.6 環(huán)回模式 22815.2.7 環(huán)回靜默模式 22915.3 bxCAN功能描述 22915.3.1 發(fā)送 22915.3.2 時間觸發(fā)通信模式 23115.3.3 接收管理 23115.3.4 標識符過濾 23215.3.5 報文存儲 23315.3.6 錯誤管理 23415.3.7 位時間特性 23415.4 bxCAN中斷 23515.5 bxCAN固件庫 23515.6 CAN通信實例 23715.7 小結 241第16章 RTX實時操作系統(tǒng)應用 24216.1 RTX概述 24216.1.1 RTX任務 24316.1.2 RTX調度 24516.2 任務通信 24716.2.1 事件標志 24716.2.2 互斥量 24816.2.3 信箱 24916.3 RTX基礎配置 25116.4 中斷任務之間的通信實例 25216.5 小結 254第17章 USB電源監(jiān)測 25517.1 需求分析 25517.2 硬件設計 25517.3 軟件設計 25617.4 小結 259