1. 建立工程模板
- 建相關文件 夾, 添加庫文件
- 配置系統宏定義和頭文件包含路徑
- mdk 軟件配置
2. 配置系統時鍾
系統時鍾是整個系統運行的三要素之一(還有電源、復位),
這里主要配置 分頻系數M、P 倍頻系數 N
3. 測試系統時鍾
配置完系統時鍾,還要驗證一下時鍾是否是我們所期望的,這里提供幾種方法,僅供參考:
- 查看變量 SystmeCoreClock 的值
- 通過硬件仿真查看
內部時鍾存在偏差,可通過修改校准寄存器的值修正,以下是修正前后從mco時鍾輸出引腳測得的內部高速時鍾頻率
修正前:
修正后:
4. 配置系統打印調試串口
嵌入式平台由於資源的限制,一般沒有顯示設備,所以通常通過串口調進行調試
5. 看門狗
- 在后台主循環里加入 喂狗操作,可防止程序死循環,因得不到及時喂狗,導致程序復位
- 在中斷里加入喂狗操作(喂狗間隔時間一定要長於主循環里的喂狗時間),防止中斷意外關閉
6. RTC
RTC可以為系統提供時間信息, 定時中斷(喚醒)
7. GPIO 口操作
GPIO 操作流程:
1) 打開外設端口時鍾 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
2) 填充 GPIO_Init_TypeDef 結構體
3) 調用Gpio_Init() 配置端口
注意 :調用Gpio_Init() 函數之前必須先打開外設端口時鍾
8. 定時器
- 定時器實現精確定時
- 脈沖計數
- pwm脈沖
9. 中斷
中斷是前后台系統運行的關鍵, 可提高程序的響應能力
中斷編寫注意事項:
10. I2C
I2C是系統重要的內部總線,用於連接mcu和片上其他外設,只需2根線即可實現數據通訊
11. SPI
SPI是高速的內部總線
12. 搭建系統框架
裸機程序規模增大之后,如果不搭建一個合適的系統框架,系統維護和擴展將會是一件棘手的工作,
常見的系統框架如下:
1)時間片輪詢系統
2)基於消息輪詢的系統
3)轉態機
13. 面向對象的思想編程
用結構體實現封裝
結構體成員變量表示屬性
結構體 函數指針 成員變量表示方法
14. 面向接口的編程
面向接口的編程有如下優點:
- 高內聚,低耦合
- 提高系統的可擴展性和可維護性
- 為實現分層提供了有力的保障