第一篇nRF52系列處理器初步篇
第1章藍牙5.0芯片nRF52系列開發(fā)緒論2
1.1芯片選型2
1.2開發(fā)工具的購買與選取3
1.3硬件電路設計5
1.3.1電路圖設計和PCB繪制5
1.3.2藍牙射頻硬件配置5
1.3.3焊接加工5
1.4軟件與功能開發(fā)6
1.4.1資料搜集學習6
1.4.2勘誤表6
1.4.3實例開發(fā)7
1.5性能測試10
1.5.1RF測試10
1.5.2功耗測試11
1.5.3認證(可選)11
第2章藍牙工程包SDK詳解13
2.1SDK15.0開發(fā)包的基本結構13
2.1.1components文件包14
2.1.2config文件包15
2.1.3documentation文件包16
2.1.4examples文件包16
2.1.5external文件包和external_tools文件包18
2.1.6integration文件包和modules文件包19
2.2開發(fā)包外設硬件實例和藍牙實例說明19
2.2.1外設硬件實例說明19
2.2.2藍牙實例說明21
第3章開發(fā)環(huán)境Keil的使用及工程建立22
3.1開發(fā)環(huán)境Keil5簡介22
3.2綜合開發(fā)工具nRFgoStudio26
3.2.1nRFgoStudio工作界面介紹26
3.2.2nRFgoStudio使用簡介28
3.3工程項目的建立30
3.4工程項目的仿真與調試40
3.4.1仿真工具的選擇與設置40
3.4.2項目仿真錯誤定位42
第二篇藍牙硬件篇
第4章nRF52832開發(fā)板硬件介紹50
4.1青云nRF52832EK主板介紹及電路詳解50
4.1.1青云nRF52832EK主板介紹50
4.1.2青云nRF52832EK電路詳解52
4.2配套模塊電路詳解59
4.2.1OLED顯示模塊60
4.2.2LIS3DH三軸加速度計模塊61
4.2.3MPU6050六軸模塊63
4.2.4DHT11溫濕度模塊64
第5章GPIO端口的應用65
5.1GPIO端口資源介紹65
5.2GPIO寄存器介紹67
5.3GPIO輸出應用75
5.3.1點亮第一個LED燈75
5.3.2蜂鳴器的驅動78
5.4GPIO輸入應用81
5.4.1GPIO輸入掃描流程81
5.4.2機械按鍵輸入掃描83
5.4.3電容觸摸按鍵的應用86
第6章GPIOTE與外部中斷89
6.1GPIOTE原理分析89
6.2GPIOTE輸入事件的應用94
6.2.1GPIOTE事件寄存器的應用94
6.2.2GPIOTE事件組件的應用97
6.3GPIOTEPORT事件的應用101
6.4GPIOTE任務的應用105
6.4.1GPIOTE任務觸發(fā)LED燈105
6.4.2組件方式的任務配置107
第7章串口UART和UARTE外設的應用110
7.1UART和UARTE原理110
7.1.1UART功能描述110
7.1.2UARTE功能介紹112
7.2應用實例編程115
7.2.1串口printf輸出115
7.2.2串口輸入與回環(huán)122
7.2.3UARTE模式串口中斷124
第8章唯一ID與加密解密131
8.1唯一ID的概念131
8.1.1唯一ID的作用131
8.1.2讀取唯一ID131
8.2唯一ID用于加密133
8.2.1TEA加密算法133
8.2.2唯一ID的加密與解密134
第9章內部溫度傳感器與隨機數發(fā)生器138
9.1內部溫度傳感器138
9.1.1內部溫度傳感器寄存器138
9.1.2內部溫度傳感器的電氣特性140
9.1.3內部溫度傳感器庫函數編程141
9.2隨機數發(fā)生器144
9.2.1隨機數發(fā)生器原理144
9.2.2隨機數發(fā)生器寄存器145
9.2.3隨機數發(fā)生器庫函數編程146
第10章定時器TIMER156
10.1原理分析156
10.2定時器定時功能159
10.2.1定時器寄存器編程159
10.2.2定時器組件的應用163
10.3定時器計數功能172
10.3.1計數器寄存器編程172
10.3.2計數器組件庫編程174
第11章PPI模塊的使用178
11.1原理分析178
11.1.1PPI的結構178
11.1.2fork從任務機制180
11.1.3group分組機制180
11.2PPI之GPIOTE的應用180
11.2.1寄存器編程180
11.2.2組件庫函數介紹184
11.2.3組件庫函數編程185
11.3fork從任務的應用189
11.3.1PPIfork從任務寄存器的應用189
11.3.2PPIfork從任務組件庫的實現(xiàn)191
11.4PPI之group分組的應用193
11.4.1PPIgroup分組原理及寄存器的應用193
11.4.2PPIgroup組件庫函數介紹197
11.4.3組件庫工程編程198
第12章定時器和PPI的聯(lián)合應用202
12.1PPI之定時器計數202
12.1.1PPI定時器計數寄存器編程202
12.1.2PPI定時器計數器庫函數編程206
12.2定時器與PPI之軟件PWM211
12.2.1軟件PWM寄存器方式211
12.2.2軟件PWM組件庫編程215
12.3PPI之輸入捕獲220
12.3.1原理分析220
12.3.2應用實例編程222
第13章RTC實時計數器226
13.1原理分析226
13.1.1RTC的內部結構226
13.1.2RTC的事件227
13.2TICK事件與比較事件的應用231
13.3RTC組件庫的使用238
13.3.1RTC組件庫函數工程的搭建238
13.3.2RTC組件庫函數API介紹240
13.3.3RTC組件庫編程242
13.4RTC溢出事件246
13.4.1溢出事件寄存器的應用246
13.4.2組件庫下溢出事件的應用248
第14章看門狗250
14.1原理分析250
14.1.1看門狗的作用250
14.1.2看門狗的運行250
14.2看門狗寄存器編程252
14.2.1看門狗寄存器介紹252
14.2.2看門狗寄存器的配置255
14.3看門狗庫函數編程257
14.3.1看門狗庫函數API介紹257
14.3.2看門狗庫函數的配置259
第15章SAADC采集264
15.1SAADC原理分析264
15.1.1SAADC屬性參數264
15.1.2工作模式267
15.2SAADC寄存器介紹268
15.3應用實例編寫277
15.3.1ADC的單次采樣277
15.3.2ADC的差分采樣283
15.3.3EasyDMA的單緩沖中斷采樣285
15.3.4PPI啟動雙緩沖中斷采樣292
第16章PWM298
16.1PWM的基本原理298
16.1.1PWM模塊的特征298
16.1.2PWM的計數模式298
16.1.3PWM的周期和占空比控制299
16.1.4EasyDMA解碼器302
16.2PWM寄存器編程303
16.2.1PWM寄存器介紹303
16.2.2PWM寄存器向上計數方式編程311
16.2.3PWM寄存器向上向下計數方式編程313
16.3組件庫函數編程314
16.4共用加載模式318
16.4.1簡單回放318
16.4.2復雜回放321
16.4.3不重啟回放324
16.5獨立加載模式325
16.5.1非回調獨立加載模式325
16.5.2中斷回調獨立加載模式327
16.6分組加載模式331
16.7波形加載模式333
16.8多序列復合驅動336
第17章I2C/TWI讀/寫應用340
17.1I2C/TWI總線原理分析340
17.1.1I2C/TWI基本概念340
17.1.2nRF52處理器I2C/TWI資源343
17.1.3I2C/TWI寄存器346
17.2I2C編程實例——驅動MPU6050353
17.2.1I2C/TWI組件庫介紹353
17.2.2MPU6050介紹356
17.2.3I2C驅動MPU6050編程359
17.2.4堵塞模式和非堵塞模式366
17.2.5下載測試366
第18章SPI接口的應用368
18.1SPI總線介紹368
18.2nRF52832處理器SPI特點370
18.2.1SPI模塊資源370
18.2.2SPI主機EasyDMA371
18.2.3低功耗372
18.2.4主模式引腳配置372
18.3SPI接口寄存器373
18.4SPI讀/寫W25Q16379
18.4.1硬件準備379
18.4.2SPI組件庫介紹379
18.4.3應用實例編程382
18.4.4堵塞模式和非堵塞模式391
18.4.5實驗現(xiàn)象391
第三篇外設應用綜合篇
第19章外設綜合實例394
19.1綜合實例實現(xiàn)目標394
19.2時鐘設計395
19.2.1RTC定時時鐘395
19.2.2時鐘初始化配置398
19.2.3OLED時鐘顯示及刷新401
19.3電池電量采集設計402
19.3.1SAADC初始化與PPI觸發(fā)采集402
19.3.2電池電量OLED顯示403
19.4工程搭建與程序測試404
19.4.1工程搭建404
19.4.2程序測試406
參考文獻408