嵌入式系統原理及應用----基于ARM Cortex-M3內核的STM32F103系列微控制器
(答案僅供參考,不喜勿噴~~)
(本人比較懶,后面的就沒仔細整)
第1篇系統篇
第1章嵌入式系統概述
1、 什么是嵌入式系統?他和人們日常使用的 PC 有什么區別和聯系?
答:
(1) 以應用為中心,計算機技術為基礎,軟硬體可裁減,從而能夠適應實際應用中對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統,
(2)
①嵌入式系統是專用的計算機系統,而PC是通用的計算機系統,
②技術要求不同,通用PC追求高速、海量的資料運算;嵌入式要求物件體系的智能化控制,
③發展方向不同,PC追求總線速度的不斷提升,存盤容量不斷擴大;嵌入式追求特定物件系統的智能性,嵌入式,專用性,
2、 列舉嵌入式系統的主要特點,
答:
專用性、可裁剪行、實時性、可靠性、具有較長的生命周期、不易被壟斷,
3、 比較嵌入式微處理器 MPU 和嵌入式微控制器 MCU 之間的區別和聯系,
答:
(1) (MPU)嵌入式微處理器以通用處理器(CPU)為基礎,將微處理器裝配在專門設計的電路 板上,只保留和嵌入式應用有關的功能;外接電路必須包括 ROM、RAM、總線介面、各 種外設等器件,
(2)(MCU)嵌入式微控制器又稱單片機,是將整個計算機系統濃縮集成到一塊芯片中,一般 以某一種微處理器內核為核心,芯片內部集成 ROM/EPROM、RAM、總線、總線邏輯、 定時/計數器、看門狗、I/O、串行口、脈寬調制輸出、A/D、D/A、Flash 等各種必要功能和外設,
4、 什么是馮諾伊曼結構?什么是哈佛結構?
答:
(1)馮諾伊曼體系結構:指令和資料不加以區分,都通過資料總線進行傳輸,因此,指令讀 取和資料訪問不能同時進行,資料吞吐量低,但總線數量相對較少且管理統一,大多數通用計算機的處理器(如 Intel X86)和嵌入式系統中的 ARM7 處理器均采用馮諾依曼結構,
(2)哈佛體系結構:指令與資料分開存盤在不同的存盤空間,使得指令讀取和資料訪問可以 并行處理,顯著提高了系統性能,但需要較多數量的總線,大多數嵌入式處理器都采用哈佛結構,
5、 簡述嵌入式 I/O 介面的功能、組成和編制方式,
答:
(1)功能:嵌入式 I/O 介面連接和控制嵌入式 I\O 設備,負責完成嵌入式處理器和嵌入式 I\O 設備間的信號轉換、資料傳輸和速度匹配,
(2)組成:暫存器(資料暫存器、控制暫存器、狀態暫存器)、I\O 控制邏輯部件、外設介面 邏輯,
(3)編制方式:為暫存器指定埠地址的方法被稱為 I\O 介面的編制方式,一般來說 I\O 接 口編制方式有統一編址和獨立編址,
6、 無作業系統的嵌入式軟體主要有哪幾種實作方式?
答:
回圈輪詢系統、前后臺系統,
7、 什么是引導加載程式?它的主要功能是什么?
答:
引導程式一般由匯編語言撰寫,在嵌入式系統上電后運行,完成自檢、存盤映射、時鐘系統 和外設介面配置等一系列硬體初試化作業,
8、 列舉嵌入式系統的主要分類?
答:
(1)按硬體劃分:根據嵌入式處理器的字長,可分為 4,8,16,32,64 位嵌入式系統,
(2)按軟體復雜度劃分:無作業系統控制、小型作業系統控制、大型作業系統控制的嵌入式 系統,
(3)按實時性劃分:非實時嵌入式系統、硬實時嵌入式系統、軟實時嵌入式系統,
9、 列舉嵌入式系統的主要應用領域,
答:
國防軍事、工業控制、消費電子、辦公自動化產品、網路和通信設備、汽車電子、金融商業、 生物醫學、資訊家電,
第2章嵌入式系統開發
1、 概述嵌入式系統的開發環境,
答:
嵌入式系統的開發環境稱為交叉開發環境,有宿主機、目標機以及它們之間的連接構成, 首先,在宿主機上建立開發環境,進行應用程式撰寫和交叉編譯,然后,在宿主機和目標機之間建立連接,將應用程式下載到目標機上進行交叉除錯最后,將應用程式固化到目標機中實際運行,
2、 簡述嵌入式軟體開發工具的構成,
答:
編輯器、編譯器、聯結器、除錯和下載工具,
3、 列舉目前常用的嵌入式軟體集成開發工具,
答:
KEIL MDK、IAR EWARM,
4、 嵌入式除錯方式有哪些? 答:
軟體模擬器、ROM 監控器、ROM 仿真器、在線仿真器、片上除錯
5、 什么是 JTAG?它屬于哪種嵌入式除錯方式?簡述 JTAG 介面的引腳定義,
答:
(1)JTAG 是一種關于測驗訪問和邊界掃描結構的標準,用于芯片內部測驗及對程式進行除錯、 下載,
(2)片上除錯
(3)JTAG 介面的引腳定義包括 TCK、TDI、TDO、TMS、nTRST,
6、 目前常用的嵌入式軟體開法語言有哪些?他們分別具有什么特點?
答:
匯編語言、C 語言、Java 語言
(1)匯編語言:對底層設備操控性好、效率高但編程復雜功能有限、可讀性、可移植性差,
(2)C 語言:語言簡潔緊湊,使用方便靈活、表達能力強代碼質量高、執行效率高等,
(3)Java 語言:面向物件、解釋性、平臺無關、分布式、健壯、安全、動態、支持多執行緒,
7、 嵌入式系統的開發程序可以分為哪幾個階段?
答:
需求分析、系統規劃、系統實作、系統測驗、系統發布
第2篇內核篇
第3章ARMCortex-M3處理器
1、 簡述 ARM 處理器家族的發展史,
答:
ARM 公司繼 ARM7、ARM9、ARM11 之后,推出新一代處理器 ARM Cortex,
2、 ARM Cortex 處理器分為哪幾個系列?每個系列又分別面向哪些應用場合?
答:
(1)Cortex-A:面向高端的基于虛擬記憶體的復雜作業系統應用,
(2)Cortex-R:面向實時領域的應用,
(3)Cortex-M:面向低成本低功耗的傳統單片機應用場合,
3、 詳述 ARM Cortex-M3 處理器的構成,
答:
ARM Cortex-M3 處理器由 Cortex-M3 內核和除錯系統構成,Cortex-M3 內核主要由 core 中央 處理器核心、NVIC 嵌套向量中斷控制器、SYSTICK 系統定時器、MPU 存盤保護單元和總線矩 陣等組成,除錯系統包括停機和除錯監控器兩種模式、指令斷點、暫存器、存盤訪問以及性 能分析此外還具有指令跟蹤、資料跟蹤、除錯資訊跟蹤,
4、 ARM Cortex-M3 處理器的總線介面有哪些型別?
答:
主要有 I-Code 總線、D-Code 總線、系統總線、外部私有外設總線和除錯訪問埠總線 DAP,
5、 ARM Cortex-M3 處理器有幾種作業狀態?支持哪些資料型別?
答:
兩種作業狀態:Thumb 狀態和除錯狀態, 資料型別:字(32b)、半字(16b)、位元組(8b)
6、 詳述 ARM Cortex-M3 的暫存器及其主要用途,
答:
(1)通用暫存器(R0~R12):資料操作,
(2)堆疊指標暫存器(SP):用作堆疊指標,
(3)鏈接暫存器(LR):呼叫子程式時保存回傳地址,
(4)程式計數器(PC):用于存放下一條執行的指令地址,
(5)特殊功能暫存器組:預定義的功能,
7、 概述 ARM Cortex-M3 處理器的兩種操作模式及其切換機制,
答:
執行緒模式和處理者模式,例外產生使中斷用戶應用程式執行從執行緒模式切換到處理者模式, 執行例外服務程式,例外回傳,由處理者模式切換到執行緒模式,繼續執行被打斷的用戶應用 程式,
8、 例外和中斷有什么聯系和區別?ARM Cortex-M3 處理器最多能支持多少種例外?他們的 優先級是如何規定的?
答:
(1)在 ARM 中凡是發生打斷程式正常執行流程的事件,都被稱作例外,中斷是一種特殊的 例外且是異步事件,例外還包括同步事件,
(2) ARM Cortex-M3 處理器最多能支持 240 種例外,
(3) 優先級通過搶占優先級和子優先級劃分,
9、 假設 ARM Cortex-M3 處理器要將以下資料以小端格式寫入存盤器,依次寫出實作以下功 能的 C 陳述句,并畫出這些資料在 ARM 存盤器中的存盤空間分布圖:
(1) 大寫字母’E’存放在地址 0x20000400 上,
(2) 雙位元組資料 0xEF0 存放到地址 0x2000012C 上,
(3) 四位元組資料 0XA1234 存放到地址 0x20000034 上,
(1)
char *p =(char *)0x2000 0400;
*p='E';

(2)
shot *p =(short int *)0x2000 012C;
*p=0xFE0;

(3)
long *p=(long *)0x2000 0034;
*p=0xA1234;

第4章基于ARMCortex-M3的STM32微控制器
1、 簡述 ARM Cortex 內核與基于 ARM Cortex-M3 內核的微控制器之間的區別和聯系,
答:
ARM Cortex 內核是 ARM 公司設計,而基于 ARM Cortex 內核的微控制器是各大廠商根據 ARM 公司的內核,設計各具特色的微控制器,其中 MPU 由 ARM Cortex 內核、除錯系統、內部總 線、外設、存盤器、時鐘復位、IO 等封裝而成,(MCU=CPU+RAM/ROM+I/O)
2、 簡述 STM32 系列微控制器的適合場合、命名規則和主要產品線,
答:
(1)適合場合:
替代絕大部分 10 元以上的 8/16MCU 的應用 替代目前常用的 32 位 MCU(ARM7)的應用 小型 OS 相關的應用 簡單圖形和語音相關的應用
(2)命名規則: 名稱主要有以下部分組成產品系列名、產品型別名、產品子系列名、引腳數、Flash 存盤器 容量、封裝方式、溫度范圍,
(3)主要產品線: 產品線包括高性能、主流、超低功耗三大類,分別面向不同的應用,
3、 目前微控制器的開發方法主要有哪些?
答: 暫存器開發、庫函式開發、中間件開發
4、 STM32F103 微控制器的主系統由哪幾部分構成?畫出 STM32F103 微控制器的系統結構圖,
答:
主系統由 4 個主動單元和 4 個被動單元構成,它們彼此之間通過一個多級的 AHB 總線架構 相互連接,其中 4 個主動單元包括 Cortex-M3 內核資料總線和系統總線、通用 DMA1 和通用
DMA2,4 個被動單元包括內部 SRAM、內部閃存存盤器、FSMC 和連接所有 APB 設備的 AHB
到 APB 橋,P138 (圖 4-6)

5、 畫出 STM32F103 微控制器的存盤器映射圖,
答:P108(圖 3-20)
6、 什么是微控制器的最小系統?它通常由哪幾部分組成?
答:
(1)一個微控制器的最小系統是指使為控制器正常作業所需的最少原件,
(2)通常由微控制器芯片、電源電路、時鐘電路、復位電路、除錯和下載電路等部分組成,
7、 簡述 STM32F103 微控制器的供電方案,
答:
(1)主電源 VDD(必需)
(2)實時時鐘和一部分備份暫存器的電源 VBAT(可選)
(3)ADC 模塊所需的參考電壓 VREF+和 VREF-(可選) 其中每個電壓供應引腳都需要至少一個去耦電容
8、 STM32F103 微控制器集成了標準 ARM CoreSight 除錯埠 SWJ-DP,它有兩種不同的埠: JTAG-DP 和 SW-DP,相比 JTAG-DP,SW-DP 有什么優勢?
答:
SW-DP 串行線除錯埠,占用的引腳比較少,為 AHP-AP 模塊提供 2 針(時鐘+資料)介面,
9、 STM32F103 微控制器有哪些時鐘源?
答:
高速外部時鐘、高速內部時鐘、低速外部時鐘、低速內部時鐘
10、STM32F103 微控制器 AHB 高速總線時鐘 HCLK、APB2 外設總線時鐘 PCLK2 和 APB1 外設 總線時鐘 PCLK1 分別給哪些模塊提供時鐘信號?當 STM32F103 微控制器復位后,他們默認 的作業頻率分別是多少?
答:P156
(1)高速總線 AHB 時鐘(HCLK):為 Cortex-M3 內核、存盤器、DMA 提供時鐘信號,72MHz,
(2) APB2 外設總線時鐘(PCLK2):為掛載在 APB2 總線上的外設提供時鐘信號,72MHz,
(3) APB1 外設總線時鐘(PCLK1):為掛載在 APB1 總線上的外設提供時鐘信號,36MHz,
11、STM32F103 微控制器有哪些低功耗模式?他們各自有什么特點?如何進入和退出這些低 功耗模式?
答:
(1)睡眠模式:內核停止作業,外設還在繼續作業,CPU 停止運行、PLL 關閉、關閉除喚醒 內核的外設外其他所有外設時鐘,當內核遇到 WFE 或 WFI 指令進入睡眠模式,直到某個外 設產生事件或中斷請求,退出睡眠模式,
(2)停機模式:睡眠模式的基礎上,所有外設時鐘都被關閉,CPU 停止運行、PLL、HIS、HSE、 關閉、關閉所有外設時鐘、調壓器低功耗模式,先設定電源控制暫存器 SLEEPDEEP 位置位、 PDDS 清零,一旦遇到 WFE 或 WFI 指令,進入停機模式,通過 EXTI 信號喚醒,EXTI 信號可 以是 16 個外部 I\O 引腳之一、PVD 的輸出、RTC 鬧鐘或 USB 喚醒信號,
(3)待機模式:最低的電能消耗,CPU 停止運行、PLL、HIS、HSE、關閉、關閉所有外設時鐘、 調壓器關閉,先設定電源控制暫存器 SLEEPDEEP 位置位、PDDS 置位,一旦遇到 WFE 或 WFI 指令,進入待機模式,退出條件是 NRST 引腳上的外部復位信號、IWDG 復位、WKUP 引腳 上的上升沿或 RTC 鬧鐘事件,
12、STM32F103 微控制器有哪些安全特性?
答:
看門狗、電源檢測、時鐘安全系統
13、什么是看門狗?STM32F103 微控制器的看門狗有何特性?
答:
(1)看門狗是嵌入式系統中常用的安全保障行機制,
(2)它可以實時監測程式的運行狀態,即使由于某種原因微控制器進入一個錯誤狀態,程式 跑飛進入死回圈,系統也可以自動恢復,
14、什么是啟動代碼?它主要執行哪些作業?
答:
(1)啟動代碼用來初始化系統以及為嵌入式作業系統或者使用高級語言撰寫的嵌入式應用軟 件做好運行前準備的一段匯編語言程式,
(2)初始化例外向量表、初始化時鐘系統、初始化存盤器系統、初始化堆疊和跳轉到 main 函式等,
15、簡述 STM32F103 微控制器的啟動程序,
答:
(1)根據 BOOT0 和 BOOT1 引腳選擇啟動存盤器映射,
(2)從地址 0x00000000 處取出堆疊頂指標值放入 MSP,
(3)從地址 0x00000004 處取出復位例外服務程式的入口地址放入 PC,
(4)執行復位例外服務程式,
16、使用嵌入式軟體開發工具(如 KELL MDK 等)構建基于 STM32F103 微控制器應用的開發 程序,具體可以分為那幾步?
答:
一般可分為 7 步:
(1) 從 ST 官網下載 STM32F10x 標準外設庫,
(2) 下載安裝嵌入式開發工具,
(3) 通過官方控制模板和硬體型號更改相關配置選項,
(4)撰寫程式代碼,
(5)編譯鏈接工程,
(6)使用軟體模擬仿真或下載硬體運行等方式除錯程式,
(7)下載到微控制器,復位從新運行,
第3篇片內外設篇
第5章GPIO
1、 什么是 GPIO?
答:
微控制器數字輸出輸出的基本模塊
2、 列舉 STM32F103 微控制器 GPIO 的 8 種作業模式及使用場合,
答:P224
(1)上拉輸入
(2)下拉輸入
(3)浮空輸入
(4)模擬輸入
(5)普通推挽輸出
(6)普通開漏輸出
(7)復用推挽輸出
(8)復用開漏輸出
3、 對于 STM32F103 微控制器 GPIO 來說,什么是復用功能重映射?要實作 STM32F103 微控制器某個引腳的復用功能重映射,具體分哪幾步操作?
答:
P225
(1) 用戶根據實際需要可以把某些外設的復用功能從默認引腳轉移到備用引腳上,這就是外設復用功能的 I/O 引腳重映射,
P226
(2)
①使能被重新映射到的 I/O 引腳的時鐘
②使能 APB2 總線上的 AFIO 時鐘
③按復用功能的方式配置 I/O 引腳
④使能被重新映射的外設時鐘
⑤對外設進行 I/O 引腳重映射
4、 哪些情況下需要使能 STM32F103 微控制器 APB2 總線上的 AFIO 時鐘? 答:
(1)外設復用功能重映射
(2)外部中斷映射
(3)事件輸出
5、 概述 STM32F103 微控制器 GPIO 的主要特性,
答:
P228
6、 簡述使用庫函式開發 STM32 微控制器應用的一般步驟,
答:
P241
7、 簡述使用庫函式操作 STM32F103 微控制器 GPIO 的具體程序,
答:
(1)使能該引腳所屬 GPIO 埠(如 GPIOA、GPIOB 等)的時鐘
(2)通過 GPIO_InitTypeDef 結構體變數配置 GPIO 引腳
(3)操作該引腳
第6章定時器
1、 嵌入式系統中,定時器的主要功能有哪些?
答:延時、定時、計數、輸入捕獲、輸出比較、PWM 輸出等高級功能,
2、 STM32F103 微控制器定時器的型別有哪幾種?STM32F103 微控制器不同型別的定時器有什么區別?
答:(P254、P263、P266,三個定時器的主要特性的區別)
(1)
①基本定時器 TIM6 和 TIM7、
②通用定時器 TIM2—TIM5、
③高級定時器 TIM1 和 TIM8
(2) 基本定時器只具備基本的定時功能,通用定時器除了基本的定時功能外它主要用于 測量輸入脈沖的頻率和脈沖寬度以及輸出 PWM 脈沖等場合,還具有編碼器介面, 高級定時器除了具有通用定時器的所有功能外,還可以被看成是一個分配到 6 個通 道的三相 PWM 發生器,具有帶死區插入的互補 PWM 輸出,
3、 STM32F103 微控制器通用定時器的常用作業模式有哪些?
答:
(1)計數模式(向上、向下、雙向計數)、
(2)輸出比較模式、
(3)PWM 輸出模式、
(4)輸入捕獲模式、
(5)PWM 輸入模式、
(6)單脈沖模式,
4、 什么是 PWM?PWM 的實作方式有哪幾種?
答:
(1) 脈沖寬度調制,指對脈沖寬度的控制,
(2)
①傳統的數字電路方式
②微控制器普通 I/O 模擬方式
③微控制器的 PWM 直接輸出方式,
5、 簡述無作業系統下基于無限回圈的嵌入式軟體架構的組成及應用場合,
答:
while(1){}用于延時,
6、 使用 C 語言開發基于 STM32F103 微控制器的應用程式時,是否可以像在 PC 上一樣呼叫printf 函式輸出資訊?如果可以?應該預先做哪些配置?
答:
(1) printf 函式可以輸出資訊,但是需要輸出重定向到其他設備(默認是設備顯示幕)
(2)
①重現實作 fputc 函式
②包含頭檔案 stdio.h
③勾選 USE MicroLIB 項
第7章中斷
1、 中斷服務函式與普通的函式相比有何異同?
答:
(1)相同點:結構上兩者非常相似
(2)不同點:函式一般有引數和回傳值,并在應用程式中被認為顯示的呼叫執行,而中斷服 務程式沒有引數和回傳值,并只有中斷發生時才會被自動隱式地呼叫執行,
2、 什么是中斷向量表?它通常存放在存盤器的哪個位置?
答:
(1)中斷向量表是一塊存盤區域,中斷對應的中斷服務程式的入口地址統一存放在中斷向量 表中,
(2)中斷向量表一般位于存盤器的零地址位置,
3、 概述中斷處理程序,
答:
(1)中斷回應(保護現場、中斷向量表中找到該中斷對應的中斷服務程式的地址)
(2)執行中斷服務程式
(3)中斷回傳
4、 簡述使用中斷的優缺點,
答:
(1)優點:協調系統對各種外部事件的回應和處理,使系統能夠快速回應緊急事件或優先處 理重要人物,減少 CPU 負荷,加快對事件的回應速度,顯著地提高系統效率,
(2)缺點:
1、中斷會增加程式執行的不確定性和時間長度,
2、中斷會搶占正在使用的資源,
3、中斷嵌套會增加堆疊空間,
5、 STM32F103 微控制器的中斷系統共支持 84 個例外,其中包括 16 個內部例外和 68 個可 屏蔽的非內核例外中斷,
6、 STM32F103 微控制器的中斷系統,使用 4 位優先級設定,一共支持 16 級可編程例外優先級,
7、 對于不同的中斷源,STM32F103 微控制器的回應順序遵循什么規則?
答:
(1)先比較搶占優先級,搶占優先級高的中斷優先回應,
(2)當搶占優先級相同時,比較子優先級,子優先級高的中斷優先回應,
(3)當上述兩者都相同時,比較它們在中斷向量表中的位置,位置低的中斷優先回應,
8、 STM32F103 微控制器復位中斷服務程式的地址存放在中斷向量表中的哪個位置?
答:0000_0004h
9、 STM32F103 微控制器的中斷設定程序可以分為哪幾步?
答:
(1)建立中斷向量表(選擇 Flash 或 RAM 中建立中斷向量表,默認是 Flash)
(2)分配堆疊空間并初始化(分配堆疊空間、初始化堆疊)
(3)建立中斷優先級(設定中斷優先級分組的位數、設定中斷的搶占優先級和子優先級)
(4)使能中斷
(5)撰寫對應的中斷服務程式
10、STM32F103 微控制器事件和中斷有什么區別和聯系?
答:
從外部激勵信號看中斷和事件的請求信號沒有區別,只是在 STM32F103 微控制器的內部將 他們分開,中斷信號會被送至 NVIC 向 CPU 產生中斷請求,至于 CPU 如何回應,有用戶撰寫 或系統默認的對應中斷服務程式決定,事件信號會向其他功能模塊(如定時器、USART、DMA 等)發送脈沖觸發信號,至于其功能模塊會如何回應這個脈沖觸發信號,則由對應的模塊自己決定,
11、STM32F103 微控制器 EXTI 信號線一共有多少根?它們分別對應哪些輸入? 答:
(1)19 根
(2)除了 EXTI16(PVD 輸出)、EXTI17(RTC 鬧鐘)和 EXTI18(USB 喚醒)外,其他 16 根外部 信號輸入線分別對應微控制器的 16 個引腳,
12、若要使用 STM32F103 微控制器的 EXTI 中斷,必先使哪個時鐘?
答:
APB2 總線上該引腳對應埠時鐘以及 AFIO 功能時鐘,
13、C 語言的關鍵字 volatile 有什么作用?主要用于哪些場合?
答:
(1) volatile 意為易變的、不穩定的,不讓編譯器進行優化,即每次讀取或修改 volatile 的值 時,都必須重新從記憶體或暫存器中讀取或修改,
(2)
- 中斷服務程式中修改的供其他程式檢測的變數,
- 多任務環境下各任務間共享的標志,
- 存盤器映射的硬體暫存器,
第8章DMA
1、 什么是 DMA?DMA 有哪些傳輸要素?DMA 的整個傳輸程序分為哪幾個步驟?
答:
(1)DMA(Direct Memory Access,直接存盤器存取),是一種完全由硬體執行資料交換的工 作方式,它由 DMA 控制器而不是 CPU 來控制在存盤器和存盤器、存盤器和外設之間的批量資料傳輸,
(2)傳輸要素:傳輸源、傳輸目標、傳輸單位數量、觸發信號
(3)傳輸程序:DMA 請求、DMA 回應、DMA 傳輸、DMA 結束
2、 STM32F103 微控制器 DMA 一共有多少個通道?如何回應在不同通道上同時產生的 DMA請求?
答:
(1)一共具有 12 個獨立的可配置的通道,其中 DMA1 有 7 個通道,DMA2 有 5 個通道,
(2)同一時刻,一個 DMA 只能有一個請求有效,通過先判斷軟體優先級,再判斷硬體優先 級的順序回應 DMA 請求,
3、 STM32F103 微控制器 DMA 通道的軟體和硬體觸發方式分別用于哪種場合?兩者對于通 道的選擇是否有所限定?
答:
(1) 硬體通道觸發:適用于涉及片上外設的資料傳輸,當 DMA 傳輸涉及片上外設時應根據DMA1 和 DMA2 通道映射表的分配情況,選擇指定的 DMA 及其通道,
(2) 軟體觸發:適用于僅涉及存盤器之間的資料傳輸,當 DMA 傳輸僅涉及存盤器時,可任 意選擇未被外設占用的 DMA 通道,
4、 STM32F103 微控制器的 DMA 傳輸模式有哪幾種?
答:
普通模式、回圈模式
5、 STM32F103 微控制器 DMA 傳輸允許的最大資料量是多少?
答:
DMA 資料傳輸量(最大為 65535)可編程,
6、 C 語言的關鍵字 volatile 有什么作用?主要用于哪些場合?
答:
(1)volatile 意為易變的、不穩定的,不讓編譯器進行優化,即每次讀取或修改 volatile 的值時,都必須重新從記憶體或暫存器中讀取或修改,
(2)
1、中斷服務程式中修改的供其他程式檢測的變數,
2、多任務環境下各任務間共享的標志,
3、存盤器映射的硬體暫存器,
第9章ADC
1、 什么是 ADC?
答:
ADC 模擬數字轉換器,是一種將連續變化的模擬信號轉換為離散的數字信號的電子器件,
2、 ADC 進行模數轉換分為哪三步?
答:
采樣、量化、編碼
3、 ADC 的性能引數有哪些?分別代表什么意義?
答:
(1)量程:指 ADC 所能轉換的模擬輸入電壓的范圍,
(2)解析度:反映 ADC 對輸入信號微小變化的回應能力,描述刻度大小,
(3)精度:指對于 ADC 的數字輸出(二進制代碼),其實際需要的模擬輸入值與理論上要求 的模擬輸入值之差,描述物理量的準確程度,
(4)轉換時間:ADC 完成一次 A/D 轉換所需要的時間,是指從啟動 ADC 開始到獲得相應資料 所需要的總時間,
4、 ADC 的主要型別有哪些?他們各自有什么特點?
答:
(1)逐次逼近型:規模中等、轉換速度較快、轉換精度較高、功耗低,
(2)電壓時間轉換型:作業性能比較穩定且抗干擾能力強,轉換速度慢,
(3)電壓頻率轉換型:抗干擾能力強,轉換速度慢,
5、 要使 STM32F103 的 ADC 能正常作業,對供電電源有何要求?
答:
ADC 的供電要求 2.4~3.6V
6、 STM32F103 的 ADC 可測模擬輸入信號 VIN 的范圍是多少?
答:
(負極參考電壓)VREF- <= VIN <= VREF+(正極參考電壓)
7、 STM32F103 的 ADC 共有幾路通道?可分為幾組?每組最多可容納多少路通道?
答:
ADC 最多有 18 路模擬輸入通道,除了 ADC1_IN16 與內部溫度傳感器相連,ADC1_IN17 與內 部參照電壓相連,其他的 16 路通道都可用作模擬輸入的引腳,可分為規則通道組和注入通
道組 ,其中規則通道組最多包含 16 路請求,注入通道最多包含 4 路通道,注入通道組轉換 的啟動有兩種方式:觸發注入和自動注入,
8、 假設 STM32F103 的 APB2 總線頻率為 72MHz,ADC 預分頻系數設定為 8,采樣時間選取 41.5
個 ADC 時鐘周期,那么此時 ADC 轉換時間是多少?
答:
ADC 的轉換時間 TCONV=采樣時間+量化編碼時間(固定為 12.5 個 ADC 時鐘周期)
ADC 的轉換時間=41.5+12.5=54 個 ADC 時鐘周期
APB2 總線頻率為 72MHz 經 ADC 預分頻系數 8 預分頻后得 72/8=9MHz
所以,54x(1/(9x1000000))= 6 微秒
9、 STM32F103 的 ADC 的模數轉換模式有哪幾種?
答:
單次轉換模式、連續轉換模式、掃描模式(規則和注入)、間斷模式(規則和注入)
10、STM32F103 的 ADC 的觸發轉換方式有哪些?
答:
規則通道外部觸發事件:TIM1_CC1 等等, 注入通道外部觸發事件:TIM1_CC4 等等,
11、STM32F103 的每個 ADC 是否都能產生 DMA 請求?ADC 的每路通道是否都能產生 DMA
請求?
答:
(1)否
(2)否
僅有規則通道組可以產生 DMA 請求,
12、常用的軟體濾波演算法有哪些?
答:
中位值平均濾波演算法
13、外圍 I/O 設備與 CPU 交換資料的方式有哪幾種?試說明它們各自的特點,
答:
(1)程式直接控制方式:就是由用戶行程直接控制記憶體或 CPU 和外圍設備之間的資訊傳送, 這種方式控制者都是用戶行程,
(2)中斷控制方式:被用來控制外圍設備和記憶體與 CPU 之間的資料傳送,這種方式要求 CPU 與設備(或控制器)之間有相應的中斷請求線,而且在設備控制器的控制狀態暫存器的相應 的中斷允許位,
(3)DMA 方式:又稱直接存取方式,其基本思想是在外圍設備和記憶體之間開辟直接的資料 交換通道,
(4)通道方式:與 DMA 方式相類似,也是一種以記憶體為中心,實作設備和記憶體直接交換 資料控制方式,
第10章UART
1、 解釋以下資料通信相關的基本概念:串行通信、并行通信、單工通信、半雙工通信、全 雙工通信、同步通信、異步通信,
答:
(1)串行通信:使用一條資料線將資料一位一位的依次傳輸,
(2)并行通信:使用多條資料線傳輸資料,
(3)單工通信:在同一通路上,只單向傳輸,
(4)半雙工通信:在同一通路上,雙向傳輸,
(5)全雙工通信:在不同通路上,雙向傳輸,
(6)同步通信:發送端與接收端之間使用共同的時鐘,
(7)異步通信:發送端與接收端之間不存在共同的時鐘,
2、 在資料通信中,波特率和位元率有什么區別和聯系?
答:
(1)位元率:
位元率是指每秒傳送的位元(bit)數,單位為 bps(Bit Per Second),位元率越高,傳送數 據速度越快,每秒鐘通過信道傳輸的資訊量稱為位傳輸速率,也就是每秒鐘傳送的二進制位 數,簡稱位元率,位元率表示有效資料的傳輸速率,用 b/s 、bit/s、位元/秒,讀作:位元每 秒,
(2)波特率:
在資訊傳輸通道中,攜帶資料資訊的信號單元叫碼元,每秒鐘通過信道傳輸的碼元數稱 為碼元傳輸速率,簡稱波特率,波特率是指資料信號對載波的調制速率,它用單位時間內載 波調制狀態改變的次數來表示(也就是每秒調制的符號數),其單位是波特(Baud,symbol/s), 波特率是傳輸通道頻寬的指標,
(3)波特率與位元率的關系:
位元率=波特率 x 單個調制狀態對應的二進制位數,
例如:假設資料傳送速率為 120 符號/秒(symbol/s)(也就是波特率為 120Baud),又假設每一 個符號為 8 位(bit)即八相調制(單個調制狀態對應 3 個二進制位),則其傳送的位元率為 (120symbol/s) x (3bit/symbol)=360bps.
(4)由于 URAT 使用 NRZ 編碼,因此 URAT 的波特率和位元率是相同的,
3、 簡述 UART 的介面組成及其電平標準,
答:
(1)介面組成:
TXD 用于發送資料
RXD 用于接收資料
GND 是地線
(2)電平標準:
UART 采用 TTL/CMOS 的邏輯電平標準(0~5V、0~3.3v、0~2.5v 或0~1.8v)表示資料,用高電平表示邏輯1,用低電平表示邏輯0,
在 TTL 電平標準中:邏輯1通常用+5V 表示,邏輯0通常用0V表示,
在 CMOS 電平標準中:邏輯1的電平一般接近于電源電壓,邏輯0的電平一般接近于0V,
4、 簡述 RS232 的介面組成及其電平標準,
答:
(1)介面組成:
通常采用 DB-9 的形式
TXD 用于發送資料
RXD 用于接收資料
SG 是地線等等
(2)電平標準:
RS232 采用負邏輯:用-3~-15V(通常為-12V)來表示邏輯 1,用+3∽+15V(通常為+12V) 來表示邏輯 0,
5、 畫出帶 UART 介面的微控制器與帶 RS232 介面的 PC 物理連接圖, 答:P430
6、 畫出帶 UART 介面的微控制器與帶 USB 介面的 PC 物理連接圖, 答:?
7、 UART 資料幀由哪些部分組成?
答:
UART 資料是按照一定格式打包成幀,以幀為單位在物理鏈路上進行傳輸的,
UART 的資料格式由起始位、資料位、校驗位、停止位和空閑位等構成,其中,起始位、資料位、校驗位和停止位,構成了一個資料幀
8、 簡述 STM32F103 微控制器的 USART 的主要特點, 答:P432
9、 概述 STM32F103 微控制器的 USART 的內部結構,
答:
USART 結構自上而下可分為波特率控制、收發控制和資料存盤轉移三大部分,
10、SM32F103 微控制器的 USART 有那些中斷事件?可以產生哪些 DMA 請求?
答:
發送期間:發送完成(TC)、清除發送(CTS)、發送資料暫存器空(TXE)
接收期間:空閑總線檢測(IDLE)、溢位錯誤(ORE)、接收資料暫存器非空(RXNE)、校驗錯誤(PE)、LIN 斷開檢測(LBD)、噪聲錯誤(NE,僅在多緩沖器通信)和幀錯誤(FE,僅在多緩沖器通信),
11、假設 STM32F103 微控制器的 USART1 設定為 38.4kbps,7 位資料位,一位偶校驗位,2 位停止位,發送一個大小 1KB 的檔案,需要多少時間?
答:
1KB = 1024B = 8x1024bit,大小 1KB 的檔案等于 1024 個字,等于 8x1024 個位元組, 因為資料幀中的資料位是 7 位,所以 1024B x(7+(1)=1024x7+1024(bit) 然后,
演算法一:{【1024 x(7+1+2+(1)】 + 【1024 / 7 x(7+1+2+(1)】} /38400=335.2 毫秒
演算法二:【1024 x 8 / 7 x(7+1+2+(1)】/38400=335.2 毫秒
12、假設 STM32F103 微控制器的 USART1 設定以下資料格式:8 個資料位(低位在前高位在 后),奇校驗位,1 個停止位,畫出發送字母‘E’時 USART1 發送引腳 TXD 的波形圖,
答:P431
第11章SPI
1、 通常,SPI 介面由哪幾根線組成?它們分別有什么作用?
答:
(1)SCK,即時鐘線,由主設備產生,不同的設備支持的時鐘頻率不同,但每個時鐘周期可 以傳輸一位資料,經過 8 個時鐘周期一個完整的位元組資料就傳輸完成了,
(2)MOSI,即主設備資料輸出∕從設備資料輸入線,這條信號線上的方向是從主設備到從設 備,即主設備從這條信號線發送資料,從設備從這條信號線上接收資料, (3)MISO,即主設備資料輸入∕從設備資料輸出線,這條信號線上的方向是由從設備到主設 備,即從設備從這條信號線發送資料,
(4)SS,SPI 從設備選擇信號線,當有多個 SPI 從設備與 SPI 主設備相連(即“一主多從”)時, SS 用來選擇激活指定的從設備,由 SPI 主設備(通常是微控制器)驅動,低電平有效,當只 有一個 SPII 從設備與 SPI 主設備相連(即“一主一從”)時,SS 并不是必需的,
2、 SPI 的傳輸時序有哪幾種?最大傳輸速率可達多少?
答:
(1)SPI 時序與其時鐘極性和時鐘相位相關,CPOL=0,CPHA=0; CPOL=0,CPHA=1; CPOL=1,CPHA=0; CPOL=1,CPHA=1
(2)最大傳輸速率可達幾十兆赫,
3、 SPI 的資料格式有哪幾種?傳輸順序可分為哪幾種?
答:
(1)與 UART 相似,SPI 資料傳輸也是以幀為單位,通常可以選擇 8 位或 16 位資料幀格式,
(2)CPOL=0,CPHA=0; CPOL=0,CPHA=1; CPOL=1,CPHA=0; CPOL=1,CPHA=1
4、 假設 SPI 編程設定以下時序(CPOL=0,CPHA=0)和資料幀格式(8 個資料位,高位在前低 位在后),畫出 SPI 主設備發送位元組資料 ox98(十六進制數)時其引腳 MOSI、SCK 和 CS 的波形圖,
答:P476
5、 假設 SPI 編程設定以下時序(CPOL=0,CPHA=(1)和資料幀格式(8 個資料位,底位在前高 位在后),畫出 SPI 主設備發送數字’6’時其引腳 MOSI、SCK 和 CS 的波形圖,
答:P476
6、 假設 SPI 編程設定以下時序(CPOL=1,CPHA=0)和資料幀格式(8 個資料位,高位在前低 位在后),畫出 SPI 主設備發送字母’r’(十六進制數)時其引腳 MOSI、SCK 和 CS 的波形 圖,
答:P476
7、 假設 SPI 編程設定以下時序(CPOL=1,CPHA=(1)和資料幀格式(8 個資料位,高位在前低 位在后),畫出 SPI 主設備發送位元組資料 ox54(十六進制數)時其引腳 MOSI、SCK 和 CS 的波形圖,
答:P476
8、 簡述 STM32F103 微控制器的 SPI 的主要特點,
答:
(1)SPI1 位于高速 APB2 總線上,其他的 SPI(如 SPI2、SPI3 等)位于 APB1 總線上; 既可以作為主設備,也可以作為 SPI 從設備;
(2)主模式和從模式下均可由軟體或硬體進行 NSS 管理,動態改變主∕從操作模式;
(3)可編程的 SPI 時序:由時鐘極性和時鐘相位決定;
(4)可編程的 SPI 資料格式:8 位或 16 位資料幀;LSB 在前或 MSB 在前的資料順序;
(5)可編程的 SPI 傳輸速率:最高 SPI 速率可達 18MHz;
(6)可觸發中斷的兩個標志位:發送標志位 TXE(發送緩沖區空)和接收標志位 RXNE(接收 緩沖區非空);
(7)支持 DMA 功能的 1 位元組發送和接識訓沖區:分別產生發送和接受請求;
(8)帶或不帶第三根雙向資料線的雙線單工同步傳輸;
(9)支持以多主配置方式作業;
9、 概述 STM32F103 微控制器的 SPI 的內部結構,(太懶啦)
答:P470(圖 11-10)
SPI 主要由波特率控制、收發控制和資料存盤轉移 3 部分構成,
10、分別概述 STM32F103 微控制器 SPI 主模式的配置,以及在主模式下發送一個位元組資料和接受一個位元組資料的流程(太懶啦)
答:P471
11、分別概述 STM32F103 微控制器 SPI 從模式的配置,以及在從模式下發送一個位元組資料和接受一個位元組資料的流程(太懶啦)
答:P472
12、畫出 STM32F103 微控制器 SPI 發送資料的程式流程圖, 答:P475
13、畫出 STM32F103 微控制器 SPI 接收資料的程式流程圖, 答:P475
14、STM32F103 微控制器的 SPI 有哪些狀態標記位?可以產生哪些中斷請求?
答:
(1)狀態標記位:
TXE(發送緩沖區空閑標志)
RXNE(接識訓沖區非空標志)
BSY(Busy,忙標志)
(2)
中斷請求 TXE(發送緩沖區空閑中斷請求)
RXNE(接識訓沖區非空中斷請求)
15、如何使用 STM32F103 微控制器的 DMA 進行 SPI 通信? 答:P475
第12章I2C
1、 解釋 I2C 通信中的以下常用術語:主機、從機、接受器、發送器,
答:
(1)主機:初始化發送、產生時鐘和終止發送的器件,通常是微控制器;
(2)從機:被主機尋址的器件;
(3)發送器:本次傳輸中發送資料到 I2C 總線的器件,既可以是主機也可是從機,由通信過 程具體確定;
(4)接收器:本次傳輸中從 I2C 總線上接收資料的器件,既可以是主機也可以從機,由通信 程序具體確定,
2、 I2C 介面由哪幾根線組成?它們分別有什么作用?
答:
(1)SCL(Serial Clock,串行時鐘線):I2C 通信中用于傳輸時鐘的信號線,通常由主機發出, SCL 采用集電極開路或漏極開路的輸出方式,這樣,I2C 器件只能使 SCL 下拉到邏輯 0,而不能強制 SCL 上拉到邏輯 1,
(2)SDA(Serial Data,串行資料線):I2C 通信中用于傳輸資料的信號線,與 SCL 類似,SDA 也采用集電極開路或漏極開路的輸出方式,這樣,I2C 器件同樣也只能使 SDA 下拉到邏輯 0, 而不能強制 SDA 上拉到邏輯 1,
3、 與 SPI 互連相比,I2C 互聯有什么特點?
答:
(1)必須在 I2C 總線上外接上拉電阻,
(2)通過地址區分掛載在 I2C 總線上不同的器件,
(3)支持多主機互連,
4、 I2C 的時序由哪些信號組成?
答:
I2C 的位時序,包括起始條件、資料有效性、停止條件等,
5、 試比較嵌入式系統中常用 3 種通信介面:USRT、SPI 和 I2C,
答:重點 從物理層、協議層、連接方式、主要特性、內部結構等方面討論,
6、 假設 I2C 從機采用 7 位硬體地址結構(0b0100100),畫出 I2C 主機向 I2C 從機讀取 2B 數 據(0x2F 和 0x2F)時 I2C 引腳 SCL 和 SDA 的波形圖,
答:P532
7、 假設 I2C 從機采用 7 位硬體地址結構(0b0100000),畫出 I2C 主機向 I2C 從機寫入 2B 數 據(0x28 和 0x2(8)時 I2C 引腳 SCL 和 SDA 的波形圖,
答:P533
8、 簡述 STM32F103 微控制器的 I2C 的主要特點,
答:
(1)所有的 I2C 都位于 APB1 總線;
(2)支持標準(100Kbps)和快速(400Kbps)傳輸速率;
(3)所有的 I2C 可作業于主模式或從模式,可以作為主發送器、主接收器、從發送器或者從 接收器;
(4)支持 7 位或 10 位尋址和廣播呼叫;
(5)具有 3 個狀態標志:發送器/接收器模式標志、位元組發送結束標志、總線忙標志;
(6)具有 2 個中斷向量:1 個中斷用于地址∕資料通訊成功,1 個中斷用于錯誤;
(7)具有單位元組緩沖器的 DMA
9、 概述 STM32F103 微控制器的 I2C 的內部結構,
答:
由 SDA 線和 SCL 線展開,主要分為時鐘控制、資料控制、控制邏輯等部分?負責實作 I2C 的 時鐘產生、資料收發、總線仲裁和中斷、DMA 等功能,
10、分別畫出 STM32F103 微控制器的 I2C 作為主發送器和從接收器的資料包(含事件)傳輸序列圖,
答:P536
11、分別畫出 STM32F103 微控制器的 I2C 作為主接收器和從發送器的資料包(含事件)傳輸序列圖,
答:P537
12、STM32F103 微控制器的 I2C 有哪些狀態標志位?可以產生哪些中斷請求?
答:P540(表 11-(1)
13、如何使用 STM32F103 微控制器的 DMA 進行 I2C 通信? 答:P540
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/220947.html
標籤:其他
