>[success] **技術支持說明:**
>**1**.一般以自主學習為主
> **2**.可到官方問答社區中提問:[**去提問**](https://bbs.csdn.net/forums/nb-iot)
> **3**.工程師**會盡快**解答社區問題,但他們是一線開發,【**難以保證**】解答時效,解答辛苦,感謝理解!
<br/>
筆者結合了經典的MVC設計思想為配套的開發板設計了一套SDK供讀者使用,能夠大大地縮短產品開發周期。
<br/>
## **MVC 架構簡介**
經典的MVC是一種常用的代碼架構設計思想,其中M表示Model(模型),V表示View(視圖),C表示控制器(Controller),相關含義如下:
* Model(模型):封裝了數據和對數據的操作,是實際進行數據處理的地方
* View(視圖):負責程序和用戶之間的交互,例如負責把數據在在屏幕上顯示出來
* Controller(控制器):用于操作模型和視圖
后續課程將會結合代碼講解如何把這種設計思想應用到嵌入式軟件開發中。
<br/>
## **SDK 設計模式**
SDK可以分解成3個層次,自定向下分別是:

###
**HAL**: HAL(Hardware Abstraction Layer,硬件抽象層),前面課程已經一步一步地帶讀者實現了部分HAL API。
###
**Service**:服務組件,對HAL進行服務化抽象和管理。HAL的重點是操作和管理某一個硬件,例如串口和顯示器等。然而,Service的重點是為上層提供服務,例如Log組件為上層提供日志打印服務,這個組件既能通過串口寫入日志數據,又能通過顯示器上顯示日志;又例如Sender組件為上層提供NB-IoT數據發送服務,上層無需理會使用哪個型號的NB-IoT模組去發送的,因此這個組件會自行去處理這些細節。
###
**Task**:是指某種更貼合用戶需求的任務,例如定時地獲取傳感器的數值,并上報給指定的服務器。
<br/>
<br/>
## **商務合作**
如有以下需求,可掃碼添加管理員好友,注明“**商務合作**”
* 項目定制開發,技術范圍:**NB-IoT**、**CATn(4G)**、**WiFi**、**ZigBee**、**BLE Mesh**以及**STM32**、**嵌入式Linux**等;
* 入駐平臺,成為講師;
* 接項目賺外快;
* 善學坊官網:[www.sxf-iot.com](https://www.sxf-iot.com/)

(非商務合作**勿擾**,此處**非**技術支持)
- 課程簡介
- 配套資源下載
- 配套開發套件簡介
- 簡介
- 硬件組成 & 技術參數
- STM32 Pro 主板 原理圖 & PCB圖
- STM32 Std 主板 原理圖 & PCB圖
- 板載設備使用說明
- STM32開發指南
- 1. 搭建開發環境
- 1.1 Keil MDK簡介與安裝
- 1.2 STM32 Pack 簡介與安裝
- 1.3 CH34x 驅動簡介與安裝
- 1.4 ISP 串口下載工具
- 1.5 串口調試工具
- 2. STM32 開發基礎
- 2.1 新建工程
- 2.2 實現第1個程序
- 2.3 Hex 文件燒錄詳解
- 3. 移植官方標準工程模板
- 4. GPIO實驗:LED
- 5. 系統延時應用
- 6. GPIO實驗:按鍵
- 7. GPIO中斷實驗——按鍵觸發實驗
- 8. 使用定時器TIM3
- 9. 串口通信實驗
- 10. ADC 實驗
- 11. OLED顯示器實驗
- 12. SDK 設計思想
- 13. SDK 架構解析
- 14. 多任務應用實驗
- 15. 輸入型任務:按鍵輸入實驗
- 16. 輸入型任務:串口接收實驗
- 17. 高精度溫濕度傳感器實驗
- 進階課程