當前位置: 首頁 > 新聞資(zī)訊 > 技術牛人自制stm32開(kāi)發闆學習32位單片機(圖文)

技術牛人自制stm32開(kāi)發闆學習32位單片機(圖文)

發布時間:2024-02-22 7:58:19

  1. 嵌入式STM32中(zhōng),主入從出MISO指的是什麽意思?
  2. stm32開(kāi)發闆有什麽用
  3. Cortex-M3之STM32嵌入式系統設計的目錄

一(yī)、嵌入式STM32中(zhōng),主入從出MISO指的是什麽意思?

嵌入式stm32中(zhōng),主入從出miso指的是什麽意思?

spi通訊中(zhōng),主機接收從機發送過來的資(zī)料,是通過miso引腳來完成的,

spi主機的資(zī)料接收引腳寄,即spi從機資(zī)料傳送引腳

關于嵌入式arm,arm cortex-m3 ,m3指的是什麽意思?

cortex m系列第三代架構。(簡要的說就是晶片設計廠家給出的一(yī)種晶片架構)

arm公司提出的一(yī)種新核心,arm cortex系列還有cortex-a、cortex-b、cortex-m系列。

cortex‐m3處理器核心是微控制器的中(zhōng)央處理單元(cpu)。完整的基于cm3的mcu還需要

很多其它元件。在晶片制造商(shāng)得到cm3處理器核心的使用授權後,它們就可以把cm3核心用

在自己的矽片設計中(zhōng),新增儲存器,外(wài)設,i/o以及其它功能塊。不同廠家設計出的微控制器

會有不同的配置,包括儲存器容量、型别、外(wài)設等都各具特色

我(wǒ)想自學嵌入式,但是像stm32,tq210,arm什麽,都是什麽意思?

stm32是晶片,tq210是天嵌開(kāi)發闆,arm是cpu架構。百度一(yī)下(xià)就有。

嵌入式系統指的是什麽

根據國際電(diàn)氣和電(diàn)子工(gōng)程師協會的定義,嵌入式系統是“用于控制、監視或者輔助操作機器和裝置的裝置”。具體(tǐ)一(yī)點講,嵌入式系統指的是以應用爲中(zhōng)心、以計算機技術爲基礎、軟硬體(tǐ)可裁剪、适用于應用系統,對功能、可靠性、成本、體(tǐ)積、功耗等方面特殊嚴格要求的專用計算機系統。

嵌入式系統的特點:

嵌入式系統是面向特定系統應用的;

嵌入式系統涉及計算機技術、微電(diàn)子技術、電(diàn)子技術、通訊和軟體(tǐ)等各行各業;

嵌入式系統的硬體(tǐ)和軟體(tǐ)都必須具備高度可定制性;

實時作業系統的支援;

嵌入式系統的生(shēng)命周期相當長;

軟體(tǐ)固化于儲存晶片中(zhōng);

專門的開(kāi)發工(gōng)具和環境的支援。

嵌入式實驗編寫keil程式中(zhōng),crq_init()是什麽意思?crq指的是什麽?

crq是 control request 或 certificate request 的縮寫,具體(tǐ)要看你這個函式實現的功能是什麽。

百度嫌我(wǒ)字數不夠

stm32中(zhōng)的ahp和apb指的是什麽

ahb是外(wài)設時鍾使能暫存器,

apb也是外(wài)設時鍾使能暫存器,你要用到哪個外(wài)設就使能某一(yī)位。

system32中(zhōng)的“32”指的是什麽意思?

系統檔案32

因爲現在作業系統都是32位,所有有32,麻煩設定爲好評哦

嵌入式系統到底指的是什麽

嵌入式系統是以應用爲中(zhōng)心,以計算機技術爲基礎,并且軟硬體(tǐ)可裁剪,适用于應用系統對功能、可靠性、成本、體(tǐ)積、功耗有嚴格要求的專用計算機系統。它一(yī)般由嵌入式微處理器、外(wài)圍硬體(tǐ)裝置、嵌入式作業系統以及用 戶的應用程式等四個部分(fēn)組成,用于實現對其他裝置的控制、監視或管理等功能。

嵌入式框架技術指的是什麽技術?

如果是希望向嵌入式軟體(tǐ)方向發展的話(huà),目前最常見的是嵌入式linux方向,關注這個方向,我(wǒ)認爲大(dà)概分(fēn)3個階段:

1、嵌入式linux上層應用,包括qt的gui開(kāi)發

2、嵌入式linux系統開(kāi)發

3、嵌入式linux驅動開(kāi)發

嵌入式目前主要面向的幾個作業系統是,linux,wince、vxworks等等

linux是開(kāi)源免費(fèi)的,而且其原始碼是開(kāi)放(fàng)的,更加适合我(wǒ)們學習嵌入式。

所以你可以嘗試以下(xià)路線:

(1) c語言是所有程式語言中(zhōng)的強者,微控制器、dsp、類似arm的種種晶片的程式設計都可以用c語言搞定),因此必須非常熟練的掌握。

推薦書(shū)籍:《the c programming language》 這本經典的教材是老外(wài)寫的,也有中(zhōng)譯版本。

(2) 作業系統原理,是必需的,如果你是計算機專業畢業那也就無所謂了,如果是非計算機專業的就必須找一(yī)本比較淺顯的計算機原理書(shū)籍看一(yī)看,把啥叫“程序”“執行緒”“系統排程”等等基本問題搞清楚。

(3) (3)linux作業系統就是用c語言編寫的,所以你也應該先學習下(xià)linux方面的程式設計,隻有你會應用了,才能近一(yī)步去(qù)了解其核心的精髓。

推薦書(shū)籍:《unix環境高階程式設計》(第2版)

(4) 了解arm的架構,原理,以及其彙編指令,我(wǒ)們在嵌入式開(kāi)發中(zhōng),一(yī)般很少去(qù)寫彙編,但是最起碼的要求是能夠看懂arm彙編。

(5) 系統移植的時候,就需要你從最下(xià)層的bootloader開(kāi)始,然後核心移植,檔案系統移植等。而移植這部分(fēn)對硬體(tǐ)的依賴是非常大(dà)的,其配置步驟也相對複雜(zá),也沒有太多詳細資(zī)料。

(6) 驅動開(kāi)發

linux驅動程式設計既是個極富有挑戰性的領域,又(yòu)是一(yī)個博大(dà)精深的内容。

linux驅動程式設計本質是屬于linux核心程式設計範疇的,因而是對linux核心和核心程式設計是有要求的。在學習前你要想了解linux核心的組成,因爲每一(yī)部分(fēn)要詳細研究的話(huà)足夠可以擴充套件成一(yī)本厚書(shū)。

以上隻不過是大(dà)概的框架,在實際的開(kāi)發中(zhōng)還會涉及很多東西,比如:交叉編譯、makefile、shell指令碼等等,所以說學習嵌入式的周期較長,門檻較高,自學的話(huà)更是需要較強的學習能力和專業功底。隻要能堅持下(xià)來一(yī)定會取得成功!

avr arm 嵌入式都指的是什麽?概括一(yī)下(xià)!

avr是一(yī)款高檔8爲微控制器。功能強、百度百科avr有詳細的介紹

arm是一(yī)款32爲微控制器,可以說是微處理器。功能更加強大(dà),處理速度更快,百度百科也有詳細介紹。

二、stm32開(kāi)發闆有什麽用

myc-ya157c核心闆/開(kāi)發闆

stm32開(kāi)發闆應用很廣,可以學習做評估,可用于工(gōng)業制造、消費(fèi)電(diàn)子、智能家居、醫療等高性能解決方案的開(kāi)發。

三、Cortex-M3之STM32嵌入式系統設計的目錄

《cortex-m3之stm32嵌入式系統設計》

前言

第1章 概述 1

1.1 嵌入式系統定義 1

1.2 嵌入式系統的發展 1

1.2.1 從單片機到嵌入式系統 1

1.2.2 從芯片級設計到系統級設計 2

1.2.3 從面向器件到面向任務的設計 2

1.2.4 從單處理器設計到多處理器設計 2

1.3 嵌入式系統的應用 3

1.4 arm系列嵌入式系統處理器 4

1.4.1 arm處理器分(fēn)類 4

1.4.2 arm cortex處理器 5

1.4.3 arm coretx-m3處理器 6

1.4.4 arm cortex-a8處理器 7

1.5 從8/16位處理器到arm cortex-m3/m0 7

1.6 常見的cortex-m0/m3系列mcu 9

第2章 stm32最小(xiǎo)系統設計 14

2.1 stm32f103c最小(xiǎo)系統設計方案 14

2.2 最小(xiǎo)系統設計的要素 16

.2.2.1 stm32外(wài)部晶振 16

2.2.2 複位電(diàn)路 18

2.2.3 led、key及boot跳線 19

2.2.4 穩壓電(diàn)源及isp下(xià)載口 20

2.2.5 io端口 23

2.3 pcb圖設計 24

第3章 stm32程序設計入門 26

3.1 stm32入門之hello world程序 26

3.1.1 開(kāi)發環境 26

3.1.2 編寫stm32的c程序 27

3.1.3 用gcc編譯stm32程序 29

3.1.4 stm32程序下(xià)載 30

3.1.5 在obtain_studio中(zhōng)編譯hello world程序 32

3.2 不同開(kāi)發闆的hello world程序 32

3.3 基于stm32固件庫的入門程序 33

3.3.1 stm32固件庫 33

3.3.2 stm32固件庫外(wài)設的初始化和設置 35

3.3.3 基于stm32固件庫的程序設計 36

3.4 基于stm32固件庫的hello world程序代碼分(fēn)析 37

第4章 gpio應用 40

4.1 認識stm32 gpio 40

4.1.1 gpio功能特點 40

4.1.2 stm32 io口的優點 41

4.1.3 stm32固件庫中(zhōng)提供的gpio庫函數 42

4.2 key_led程序 43

4.2.1 創建stm32_c++key_led項目 43

4.2.2 stm32_c++key_led項目程序分(fēn)析 44

4.3 低層代碼分(fēn)析 47

4.3.1 gpio端口的定義 47

4.3.2 ahb/apb橋的配置 49

4.3.3 gpio引腳的配置 50

4.3.4 gpio的讀寫 53

第5章 gcc編譯器的安裝與應用 54

5.1 gcc介紹 54

5.1.1 gcc概述 54

5.1.2 mingw簡介 54

5.1.3 mingw的安裝 55

5.1.4 mingw測試 56

5.1.5 常見gcc用法 58

5.2 arm gcc編譯器 61

5.2.1 winarm編譯器 61

5.2.2 sourcery g++ lite for arm eabi編譯器 62

5.3 obtain_studio集成開(kāi)發系統 64

5.3.1 obtain_studio集成開(kāi)發系統介紹 64

5.3.2 obtain_studio集成開(kāi)發系統常用技巧 67

5.4 gcc make編譯文件設計 69

5.4.1 gcc make常用命令 69

5.4.2 makefile文件規則 71

5.4.3 makefile文件函數 75

5.5 gcc編譯器ld腳本 79

5.5.1 c/c++程序内存空間 79

5.5.2 gcc ld腳本基礎 82

5.5.3 stm32程序中(zhōng)的ld腳本程序 86

第6章 stm32外(wài)部中(zhōng)斷 89

6.1 stm32外(wài)部中(zhōng)斷 89

6.2 stm32外(wài)部中(zhōng)斷實例 90

6.3 stm32中(zhōng)斷配置 92

6.3.1 stm32外(wài)部中(zhōng)斷程序分(fēn)析 92

6.3.2 中(zhōng)斷通道配置 94

6.3.3 中(zhōng)斷優先級配置 94

6.3.4 外(wài)部中(zhōng)斷模式配置 94

6.3.5 外(wài)部中(zhōng)斷響應函數配置 97

第7章 面向對象程序設計 99

7.1 程序風格 99

7.1.1 程序風格的比較 99

7.1.2 編程風格在程序設計中(zhōng)的作用 100

7.2 跨越開(kāi)發闆 100

7.2.1 端口映射的方法 100

7.2.2 模式設置的方法 101

7.3 分(fēn)類與封裝 101

7.3.1 什麽是分(fēn)類與封裝 101

7.3.2 封裝的實現 102

7.4 隐藏與權限 103

7.4.1 隐藏 103

7.4.2 權限 103

7.5 繼承 104

7.5.1 cgpio類的繼承 104

7.5.2 測試cled和ckey類 104

7.6 組裝 105

7.6.1 gpio的組裝 105

7.6.2 gpio組裝的測試 106

7.7 c++在嵌入式系統中(zhōng)的應用 108

7.7.1 c++介紹 108

7.7.2 兼容c語言 108

7.7.3 在c++程序中(zhōng)調用c函數 110

7.7.4 面向對象程序設計語言 110

7.7.5 泛型編程語言 111

7.7.6 stl編程 113

7.7.7 接口編程 114

第8章 usart通信 121

8.1 從51單片機到stm32的串口通信 121

8.2 usart通用串口通信設計 124

8.2.1 usart通用串口 124

8.2.2 usart通用串口通信設計方案 125

8.3 usart通用串口程序設計入門 125

8.3.1 usart數據發送程序設計 125

8.3.2 usart數據接收程序設計 126

8.4 中(zhōng)斷方式的數據接收 127

8.4.1 中(zhōng)斷方式的數據接收程序設計 127

8.4.2 多個串口驅動對象的協同工(gōng)作 128

8.5 usart驅動程序的設計 129

8.5.1 usart驅動程序 129

8.5.2 printf與cout的實現 133

8.6 深入stm32 usart的工(gōng)作原理 136

8.6.1 usart工(gōng)作原理 136

8.6.2 發送器 137

8.6.3 接收器 139

8.6.4 usart初始化函數usart_init 141

8.6.5 usart波特率的計算方法 142

第9章 stm32的工(gōng)作原理 144

9.1 stm32啓動原理 144

9.1.1 stm32啓動過程分(fēn)析 144

9.1.2 stm32軟件複位與功耗控制 145

9.2 系統時鍾分(fēn)析 147

9.2.1 系統時鍾種類 147

9.2.2 stm32固件庫設置時鍾 149

9.2.3 系統時鍾配置 150

9.3 存儲器以及存儲器映射 160

9.4 nvic嵌套中(zhōng)斷向量控制器 162

9.4.1 nvic嵌套中(zhōng)斷向量控制器 162

9.4.2 stm32的nvic優先級 166

9.5 stm32向量表及配置 170

9.5.1 stm32複位後從哪個地址開(kāi)始執行 170

9.5.2 stm32向量表 170

9.5.3 用戶程序中(zhōng)的向量表 171

第10章 定時器與日曆 179

10.1 systick定時器 179

10.1.1 關于systick 179

10.1.2 systick測試程序 180

10.1.3 systick程序分(fēn)析 181

10.2 rtc定時器 184

10.2.1 rtc定時器介紹 184

10.2.2 rtc的本質與測試程序 186

10.2.3 日曆算法 187

10.2.4 stm32的rtc日曆測試程序 190

10.2.5 stm32 rtc程序分(fēn)析 191

10.2.6 rtc秒中(zhōng)斷 193

10.2.7 rtc鬧鍾 195

10.2.8 rtc校準 197

10.3 通用定時器 198

10.3.1 stm32定時器的種類 198

10.3.2 通用定時器介紹 200

10.3.3 通用定時器基本應用程序設計 200

10.3.4 通用定時器常用模式 203

10.3.5 輸出模式測試實例 205

10.3.6 輸入捕獲模式測試實例 206

第11章 adc應用 209

11.1 adc與數字信号處理系統設計 209

11.1.1 數字信号處理系統設計 209

11.1.2 stm32簡單的adc應用實例 212

11.1.3 過采樣技術 213

11.1.4 欠采樣技術 215

11.2 stm32的adc簡介 216

11.3 stm32 adc入門實例 220

11.3.1 stm32 adc入門測試程序 220

11.3.2 stm32 adc程序分(fēn)析 221

11.3.3 stm32内部溫度測量 228

11.4 stm32 adc注入方式 229

11.4.1 stm32 adc注入方式簡介 229

11.4.2 stm32雙adc模式 230

11.4.3 stm32 adc注入方式實例 230

第12章 dma應用 235

12.1 stm32的dma簡介 235

12.1.1 任務轉移策略 235

12.1.2 stm32的dma功能 236

12.2 dma在adc中(zhōng)的應用 238

12.2.1 任務轉移策略的dma adc應用實例 238

12.2.2 dma_adc程序分(fēn)析 240

12.3 dma在usart中(zhōng)的應用 245

12.3.1 任務轉移策略的usart dma數據發送 245

12.3.2 任務轉移策略的usart dma數據接收 248

12.3.3 任務隊列策略的usart dma發送中(zhōng)斷應用 251

12.3.4 任務循環策略的usart dma接收中(zhōng)斷應用 254

第13章 備份寄存器與看門狗程序 258

13.1 stm32備份寄存器 258

13.1.1 備份寄存器特點 258

13.1.2 bkp應用實例 259

13.2 stm32看門狗 261

13.2.1 stm32看門狗介紹 261

13.2.2 獨立看門狗介紹 262

13.2.3 獨立看門狗程序設計 263

13.2.4 窗口看門狗介紹 265

13.2.5 窗口看門狗測試程序 267

第14章 tft驅動與顯示 269

14.1 lcd概述 269

14.1.1 lcd簡介 269

14.1.2 lcd接口 270

14.2 ili9xx系列tft驅動芯片 271

14.3 tft測試程序 275

14.3.1 tft測試程序準備工(gōng)作 275

14.3.2 tft測試主程序 275

14.3.3 字符的顯示 277

14.4 基于fsmc的tft驅動程序設計 279

14.4.1 stm32的fsmc功能 279

14.4.2 fsmc與tft端口連接與端口映射 279

14.4.3 fsmc與tft的内存空間映射與操作 281

14.4.4 fsmc初始化 282

14.4.5 tft初始化 287

14.4.5 tft驅動程序統一(yī)接口函數的實現 290

14.5 基于gpio的tft驅動程序設計 292

第15章 觸摸屏驅動 297

15.1 觸摸屏介紹 297

15.2 觸摸屏驅動ic 300

15.3 觸摸屏測試項目 302

15.4 觸摸屏驅動程序分(fēn)析 303

15.5 觸摸屏校準 311

15.5.1 觸摸屏校準算法 311

15.5.2 觸摸屏校準的實現 312

第16章 sd卡驅動與fat文件系統 316

16.1 stm32的sdio接口 316

16.1.1 常見存儲卡種類 316

16.1.2 sd卡結構 317

16.1.3 stm32的sdio接口 318

16.2 fat文件系統 320

16.2.1 fat文件系統概述 320

16.2.2 fatfs介紹 321

16.3 stm32 sdio接口 324

16.4 sd卡文件讀寫實例 326

16.4.1 準備工(gōng)作 326

16.4.2 sd卡文件讀寫實例 327

16.4.3 sd卡文件操作類cfile的設計 328

16.4.4 目錄操作 329

第17章 μc/os-Ⅱ在stm32上的移植 331

17.1 μc/os-Ⅱ概述 331

17.1.1 μc/os-Ⅱ簡介 331

17.1.2 μc/os-Ⅱ的組成部分(fēn) 331

17.2 μc/os-Ⅱ移植到stm32 332

17.3 μc/os-Ⅱ工(gōng)作原理 337

17.3.1 μc/os-Ⅱ啓動過程 337

17.3.2 任務切換的相關函數解析 338

第18章 漢字與圖形圖像顯示 343

18.1 漢字顯示 343

18.1.1 漢字庫 343

18.1.2 程序中(zhōng)加入漢字庫實現漢字顯示 345

18.1.3 使用sd卡上的漢字庫實現漢字顯示 346

18.2 圖形繪制 350

18.3 圖像顯示 353

18.3.1 位圖與bmp文件格式 353

18.3.2 bmp文件操作 356

18.3.3 bmp圖像顯示測試程序 359

第19章 攝像頭驅動與圖像采集 362

19.1 攝像頭接口 362

19.1.1 圖像傳感器 362

19.1.2 ov7670攝像頭 362

19.1.3 cmos攝像頭接口 364

19.2 cmos攝像頭測試程序 366

19.3 深入cmos攝像頭驅動程序原理 368

19.3.1 sccb協議 368

19.3.2 sccb協議驅動程序設計 370

19.3.3 cmos攝像頭驅動程序設計 373

第20章 以太網及web遠程控制系統設計 378

20.1 enc28j60以太網控制器 378

20.2 網絡測試程序 382

20.2.1 web server測試 382

20.2.2 udp通信測試 385

20.3 ip/icmp協議與ping命令的實現 386

20.3.1 以太網數據包結構 386

20.3.2 ip協議 387

20.3.3 icmp協議 389

20.3.4 ping命令 392

20.3.5 ping命令的實現 393

20.4 udp通信原理 393

20.4.1 udp協議 393

20.4.2 udp通信的實現 394

20.5 web server程序設計 399

20.5.1 web server原理 399

20.5.2 tcp設計 402

20.5.3 web server設計 403

20.6 enc28j60驅動程序設計 405

20.6.1 stm32 spi接口 405

20.6.2 stm32 spi驅動程序 407

20.6.3 enc28j60驅動程序 409

參考文獻 417

Top