第1章 “麻雀雖小,五臟俱全”開門見山談單片機…………………………………………… 1
1.1 “一沙一起源,一芯一世界”集成電路王國……………………………………………… 2
1.2 找尋電子界的神物“七竅玲瓏芯”……………………………………………………… 3
1.3 “師傅領(lǐng)進門,修行靠個人”單片機修行路……………………………………………… 4
1.3.1 “根骨奇佳”電子基礎(chǔ)……………………………………………………………… 5
1.3.2 “能說會道”編程語言……………………………………………………………… 6
1.3.3 “武功秘籍”學(xué)習(xí)資源……………………………………………………………… 8
1.3.4 “武器裝備”實踐平臺……………………………………………………………… 10
1.3.5 “內(nèi)功心法”學(xué)習(xí)方法……………………………………………………………… 11
第2章 “五娃出世,各顯神通”初識STM8系列單片機……………………………………… 12
2.1 意法半導(dǎo)體STM8家的“五個娃” …………………………………………………… 13
2.2 “大娃STM8AF”善汽車電子………………………………………………………… 13
2.3 “二娃STM8AL”攻綠色能源………………………………………………………… 15
2.4 “三娃STM8L”會低功耗與便攜……………………………………………………… 16
2.5 “四娃STM8S”主消費及工控………………………………………………………… 17
2.6 “五娃STM8T”通電容接近、觸摸識別……………………………………………… 19
2.7 “主角上場”STM8S207/208系列……………………………………………………… 20
第3章 “工欲善其事,必先利其器”軟/硬件開發(fā)環(huán)境及調(diào)試準(zhǔn)備………………………… 23
3.1 “塑造靈魂”軟件開發(fā)環(huán)境……………………………………………………………… 24
3.1.1 IAR公司的軟件開發(fā)環(huán)境IARforSTM8……………………………………… 26
3.1.2 ST公司的軟件開發(fā)環(huán)境STVD ………………………………………………… 33
3.2 “軀干肢體”硬件開發(fā)環(huán)境……………………………………………………………… 41
3.2.1 開發(fā)板的“那些事兒”……………………………………………………………… 41
3.2.2 思修電子STM8“祥云”系列開發(fā)平臺簡介……………………………………… 42
3.3 “形神合一”程序調(diào)試與下載…………………………………………………………… 44
3.3.1 調(diào)試仿真工具ST-LINK簡介…………………………………………………… 44
3.3.2 可視化編程STVP軟件運用…………………………………………………… 46
3.3.3 Flashloaderdemonstrator串口下載軟件運用………………………………… 49
3.4 “望聞問切”參數(shù)測試與分析…………………………………………………………… 53
3.4.1 信號觀察好搭檔“示波器”………………………………………………………… 53
3.4.2 數(shù)據(jù)分析好幫手“邏輯分析儀”…………………………………………………… 54
第4章 “五指琴魔,智能樂章”通用輸入/輸出GPIO 資源………………………………… 56
4.1 GPIO配置模式基礎(chǔ)知識鋪墊………………………………………………………… 57
4.1.1 “Playit!”彈奏單片機的智能樂章……………………………………………… 57
4.1.2 如何理解懸浮輸入………………………………………………………………… 58
4.1.3 如何理解上拉輸入………………………………………………………………… 59
4.1.4 如何理解推挽輸出………………………………………………………………… 60
4.1.5 如何理解開漏輸出………………………………………………………………… 60
4.1.6 如何理解GPIO內(nèi)部保護二極管………………………………………………… 63
4.1.7 GPIO引腳功能復(fù)用及意義……………………………………………………… 64
4.1.8 GPIO引腳外部中斷功能………………………………………………………… 65
4.1.9 GPIO引腳電氣性能……………………………………………………………… 66
4.2 初識STM8單片機GPIO資源……………………………………………………… 69
4.2.1 STM8S207/208系列單片機封裝及引腳分布…………………………………… 70
4.2.2 GPIO資源相關(guān)寄存器簡介……………………………………………………… 79
4.2.3 GPIO輸入/輸出模式配置流程………………………………………………… 81
第5章 “光電世界,自信爆棚”LED 器件編程應(yīng)用………………………………………… 87
5.1 瞬間自信心爆棚的入門經(jīng)典“流水燈”………………………………………………… 88
5.1.1 為什么入門經(jīng)典總是“點燈實驗”………………………………………………… 88
5.1.2 發(fā)光二極管模型及電氣簡介……………………………………………………… 89
5.1.3 基礎(chǔ)項目A 左移/右移/花樣流水燈…………………………………………… 89
5.2 GPIO資源擴展“小幫手”……………………………………………………………… 93
5.2.1 基礎(chǔ)項目B74HC138譯碼器應(yīng)用實驗………………………………………… 93
5.2.2 基礎(chǔ)項目C74HC154譯碼器應(yīng)用實驗………………………………………… 98
5.2.3 基礎(chǔ)項目D74HC164“串入并出”應(yīng)用實驗…………………………………… 103
5.3 火柴棍游戲說“數(shù)碼管”原理………………………………………………………… 108
5.3.1 數(shù)碼管內(nèi)部結(jié)構(gòu)及分類………………………………………………………… 109
5.3.2 基礎(chǔ)項目E 一位數(shù)碼管0~F數(shù)碼顯示……………………………………… 111
5.3.3 實戰(zhàn)項目A 基于74HC595串行動態(tài)數(shù)碼管顯示…………………………… 114
第6章 “點、線、面的藝術(shù)”字符/點陣型液晶編程應(yīng)用…………………………………… 121
6.1 單片機人機交互中的顯示單元……………………………………………………… 122
6.1.1 常見的單片機顯示方案選擇…………………………………………………… 122
6.1.2 神奇的單片機“顯卡”…………………………………………………………… 123
6.2 字符型1602液晶模塊………………………………………………………………… 124
6.2.1 模塊功能引腳定義……………………………………………………………… 125
6.2.2 讀/寫時序及程序?qū)崿F(xiàn)…………………………………………………………… 126
6.2.3 液晶功能配置命令……………………………………………………………… 128
6.2.4 基礎(chǔ)項目A1602液晶字符、進度條、移屏實驗……………………………… 132
6.2.5 基礎(chǔ)項目B 四線驅(qū)動1602節(jié)省GPIO實驗………………………………… 138
6.3 圖形/點陣型12864液晶模塊………………………………………………………… 141
6.3.1 模塊功能引腳定義……………………………………………………………… 142
6.3.2 讀/寫時序及程序?qū)崿F(xiàn)…………………………………………………………… 143
6.3.3 液晶功能配置命令……………………………………………………………… 144
6.3.4 漢字坐標(biāo)與繪圖坐標(biāo)…………………………………………………………… 146
6.3.5 基礎(chǔ)項目C12864液晶字符、漢字顯示實驗…………………………………… 148
6.3.6 實戰(zhàn)項目A12864液晶進度條動畫效果……………………………………… 151
6.3.7 基礎(chǔ)項目D 兩線驅(qū)動12864節(jié)省GPIO實驗………………………………… 154
6.3.8 實戰(zhàn)項目B 兩線串行模式正弦波打點繪圖…………………………………… 158
第7章 “0101,我是鍵碼!”獨立按鍵/矩陣鍵盤交互編程………………………………… 163
7.1 “輸入設(shè)備”人機交互中的“橋梁”…………………………………………………… 164
7.2 輕觸按鍵基礎(chǔ)知識與應(yīng)用…………………………………………………………… 164
7.2.1 輕觸按鍵分類及組成結(jié)構(gòu)……………………………………………………… 164
7.2.2 輕觸按鍵電壓波形……………………………………………………………… 165
7.2.3 常見按鍵“去抖動”方法………………………………………………………… 166
7.3 基礎(chǔ)按鍵/鍵盤結(jié)構(gòu)及應(yīng)用…………………………………………………………… 167
7.3.1 獨立按鍵結(jié)構(gòu)及電路…………………………………………………………… 167
7.3.2 基礎(chǔ)項目A 獨立按鍵檢測與控制實驗………………………………………… 168
7.3.3 行列式矩陣鍵盤結(jié)構(gòu)…………………………………………………………… 171
7.3.4 基礎(chǔ)項目B 矩陣鍵盤“線反轉(zhuǎn)式”掃碼法實驗………………………………… 172
7.4 不曾遺忘的“IBMPS/2”鍵盤/鼠標(biāo)協(xié)議及應(yīng)用…………………………………… 179
7.4.1 回到“XT、AT、PS/2”的時代…………………………………………………… 179
7.4.2 PS/2通信及數(shù)據(jù)幀構(gòu)成………………………………………………………… 181
7.4.3 PS/2鍵盤的通碼、斷碼和掃描碼集…………………………………………… 182
7.4.4 PS/2設(shè)備到主機通信流程……………………………………………………… 186
7.4.5 實戰(zhàn)項目APS/2小鍵盤加1602液晶密碼鎖實驗…………………………… 187
7.4.6 實戰(zhàn)項目BPS/2大鍵盤Shift鍵大小寫功能實驗…………………………… 195
第8章 “高樓大廈,各有功用”Flash程序存儲器與EEPROM …………………………… 202
8.1 小宇老師的“高樓大廈”……………………………………………………………… 203
8.2 細說“高樓大廈”之功用……………………………………………………………… 205
8.2.1 “臨時辦公室”隨機讀寫RAM ………………………………………………… 205
8.2.2 “教務(wù)調(diào)度室”堆?!?206
8.2.3 “專業(yè)教室”FlashROM ………………………………………………………… 206
8.2.4 “機密檔案室”EEPROM ……………………………………………………… 208
8.2.5 “校長決策室”選項字節(jié)………………………………………………………… 209
8.2.6 “學(xué)校資源管理”端口及外設(shè)寄存器…………………………………………… 210
8.2.7 “實訓(xùn)創(chuàng)新室”引導(dǎo)啟動ROM ………………………………………………… 211
8.2.8 “核心事務(wù)管理”CPU/SWIM/Debug/ITC寄存器…………………………… 212
8.2.9 “突發(fā)事件傳達室”32級中斷向量……………………………………………… 213
8.3 存儲器資源相關(guān)寄存器簡介………………………………………………………… 214
8.3.1 FLASH_CR1/FLASH_CR2控制寄存器……………………………………… 214
8.3.2 FLASH_FPR保護寄存器……………………………………………………… 217
8.3.3 FLASH_PUKR程序存儲器解保護寄存器…………………………………… 218
8.3.4 FLASH_DUKR數(shù)據(jù)EEPROM 解保護寄存器……………………………… 218
8.3.5 FLASH_IAPSR狀態(tài)寄存器…………………………………………………… 219
8.4 FlashROM 的編程方式簡介………………………………………………………… 220
8.4.1 什么是IAP和ICP ……………………………………………………………… 220
8.4.2 如何理解標(biāo)準(zhǔn)/快速編程以及RWW 功能…………………………………… 220
8.4.3 如何理解字節(jié)編程……………………………………………………………… 221
8.4.4 如何理解字編程………………………………………………………………… 222
8.4.5 如何理解塊編程………………………………………………………………… 223
8.5 存儲器讀/寫保護與控制……………………………………………………………… 224
8.5.1 ROP存儲器讀出保護…………………………………………………………… 224
8.5.2 “接頭暗號”MASS存儲器存取安全系統(tǒng)……………………………………… 224
8.6 基礎(chǔ)項目A:1位數(shù)碼管計數(shù)狀態(tài)掉電不丟失實驗……………………………… 226
第9章 “單片機的外科手術(shù)”O(jiān)ptionbytes配置及應(yīng)用…………………………………… 231
9.1 “開始手術(shù)”配置系統(tǒng)參數(shù)及外設(shè)功能……………………………………………… 232
9.2 Optionbytes選項配置詳解………………………………………………………… 233
9.3 利用STVP修改選項字節(jié)方法及流程……………………………………………… 240
9.4 利用IAR修改選項字節(jié)方法及流程………………………………………………… 243
9.5 基礎(chǔ)項目A 基于IAP方式修改選項配置實驗…………………………………… 248
第10章 “內(nèi)藏三心,堅實比金”時鐘控制器配置及應(yīng)用…………………………………… 252
10.1 “唐僧的心”說STM8時鐘源選擇………………………………………………… 253
10.2 好大的一棵“時鐘樹”………………………………………………………………… 256
10.3 配置系統(tǒng)主時鐘為HSI …………………………………………………………… 257
10.4 配置系統(tǒng)主時鐘為HSE …………………………………………………………… 265
10.4.1 自動切換時鐘源步驟及配置過程……………………………………………… 265
10.4.2 基礎(chǔ)項目BHSI與HSE自動切換時鐘源…………………………………… 268
10.4.3 手動切換時鐘源步驟及配置過程……………………………………………… 272
10.4.4 基礎(chǔ)項目CHSI與HSE手動切換時鐘源…………………………………… 275
10.5 配置系統(tǒng)主時鐘為LSI …………………………………………………………… 279
10.5.1 基礎(chǔ)項目D 程序配置啟用LSI時鐘源……………………………………… 281
10.5.2 基礎(chǔ)項目EHSI與LSI自動切換時鐘源…………………………………… 283
10.5.3 基礎(chǔ)項目FHSI與LSI手動切換時鐘源…………………………………… 287
10.6 修剪“時鐘樹枝”降低系統(tǒng)功耗……………………………………………………… 288
10.7 時鐘安全系統(tǒng)CSS“比干的心”……………………………………………………… 290
10.7.1 基礎(chǔ)項目G “挖心不死”效果驗證…………………………………………… 294
10.8 可配置時鐘輸出“CCO”功能……………………………………………………… 297
10.8.1 基礎(chǔ)項目H 可配置時鐘輸出“CCO”實驗…………………………………… 299
第11章 “輕重緩急,有條不紊”中斷控制器配置及應(yīng)用…………………………………… 304
11.1 何謂中斷? 意義何在? ……………………………………………………………… 305
11.2 “中斷”了! 咋處理? ………………………………………………………………… 306
11.3 “臨朝治政,百官進言”中斷源及分類……………………………………………… 308
11.3.1 “皇帝、皇后、皇太后”誰敢惹? ………………………………………………… 309
11.3.2 “文武百官”挨個來……………………………………………………………… 310
11.3.3 “圣旨到!”STM8中斷指令…………………………………………………… 311
11.3.4 “STM8中斷皇朝”游戲攻略…………………………………………………… 312
11.4 中斷管理模式………………………………………………………………………… 318
11.4.1 非嵌套模式“微臣有本請奏”…………………………………………………… 319
11.4.2 嵌套模式“大人此言差矣”……………………………………………………… 320
11.5 中斷功能相關(guān)寄存器詳解…………………………………………………………… 321
11.5.1 CPU 條件代碼寄存器CCR …………………………………………………… 321
11.5.2 軟件優(yōu)先級寄存器ITC_SPRx ……………………………………………… 323
11.5.3 外部中斷控制寄存器EXTI_CRx …………………………………………… 324
11.6 基礎(chǔ)項目A 查詢法/中斷法獨立按鍵對比實驗…………………………………… 328
第12章 “老和尚捻珠數(shù)羊”8位基本型定時/計數(shù)器TIM4 ……………………………… 334
12.1 單片機定時/計數(shù)器本質(zhì)及區(qū)別…………………………………………………… 335
12.2 STM8S單片機定時/計數(shù)器資源…………………………………………………… 336
12.2.1 STM8S定時/計數(shù)器分類……………………………………………………… 336
12.2.2 STM8S208MB定時器/計數(shù)器簡介………………………………………… 337
12.3 TIM4系統(tǒng)結(jié)構(gòu)及配置方法………………………………………………………… 338
12.3.1 如何理解計數(shù)模式? …………………………………………………………… 340
12.3.2 更新事件UEV 的意義………………………………………………………… 341
12.3.3 TIM4初始化流程及配置……………………………………………………… 342
12.4 TIM4相關(guān)寄存器簡介……………………………………………………………… 343
12.4.1 TIM4_CR1控制寄存器1 …………………………………………………… 344
12.4.2 TIM4_IER中斷使能寄存器…………………………………………………… 346
12.4.3 TIM4_SR狀態(tài)寄存器………………………………………………………… 346
12.4.4 TIM4_EGR事件產(chǎn)生寄存器………………………………………………… 347
12.4.5 TIM4_CNTR計數(shù)器………………………………………………………… 348
12.4.6 TIM4_PSCR預(yù)分頻寄存器…………………………………………………… 348
12.4.7 TIM4_ARR自動重裝載寄存器……………………………………………… 349
12.5 基礎(chǔ)項目A 自定義1Hz信號輸出實驗…………………………………………… 349
第13章 “多才多藝,功能王者”16位高級型定時/計數(shù)器TIM1 ………………………… 353
第14章 “搖身一變睡美人兒”電源模式管理及系統(tǒng)功耗控制…………………………… 451
第15章 “嗶啵嗶啵~滴滴~”蜂鳴器激勵信號產(chǎn)生與控制……………………………… 477
第16章 “系統(tǒng)狀態(tài)監(jiān)察/執(zhí)行官”獨立/窗口看門狗配置及應(yīng)用………………………… 496
第17章 “你來我往,烽火傳信”串行數(shù)據(jù)通信及UART應(yīng)用…………………………… 522
第18章 “通信神功,腳踏獨木橋”1-Wire單總線器件編程及應(yīng)用……………………… 613
第19章 “擊鼓聲響,雙向傳花”串行外設(shè)接口SPI配置及應(yīng)用…………………………… 648
第20章 “大老爺升堂,威武!”串行總線接口I2C配置及應(yīng)用…………………………… 713
第21章 “對內(nèi)翻譯官”A/D 模數(shù)轉(zhuǎn)換器原理及應(yīng)用……………………………………… 764