前言
本書主要說明STM32嵌入式系統應用實例。為了讓讀者能夠快速地掌握STM32 嵌入式系統的核心技術,本書從STM32 嵌入式微控制器最小系統設計入手,以實戰為目的,介紹了多個STM32 嵌入式系統應用實例,讀者參考書中實例,可以容易地設計出滿足自己專案要求的嵌入式系統,達到事半功倍的效果。書中應用實例涉及面廣、內容翔實,均為編者多年教學與科研成果的總結。
本書說明了很多新技術,如DGUS彩色液晶顯示幕應用實例。DGUS彩色液晶顯示幕透過DGUS開發軟體,可以非常方便地顯示中文字、數字、符號、圖形、圖片、曲線、儀表板等,特別易於今後的修改,徹底改變了液晶顯示器採用點陣顯示的開發方式,節省了大量的人力物力。不同於一般的液晶顯示器的開發方式,DGUS是一種全新的開發方式。微控制器透過UART串列通訊介面發送顯示的命令,每頁顯示的內容透過頁切換即可改變。
另外,本書還介紹了旋轉編碼器設計實例、CAN通訊轉換器設計實例、電力網路儀表設計實例和新型分散式控制系統(DCS)設計實例。這些實例以STM32F103為核心,均有獨立的架構,能夠培養讀者的系統設計能力和實踐能力。
本書的數位資源中提供了書中實例的STM32開發專案,如4×4鍵盤掃描程式碼、DMT32240C035_06WN螢幕程式碼、PWM輸出程式碼、獨立看門狗程式碼、視窗看門狗程式碼、USART串列通訊程式碼、MB85RS16操作程式碼、PCF2129操作程式碼、RS232-CAN(STM32F103) 程式碼、RTC程式碼、DCS程式碼和FBDCS(ST)_8AI程式碼。一方面,這些STM32開發專案給讀者一個完整的專案範本,讓讀者不再需要自建; 另一方面,讀者參照這些開發專案實例可以快速地完成自己的專案。
DCS程式碼是基於第13章說明的控制卡執行的,可以與FBDCS(ST)_8AI程式之間進行CAN通訊,對於初次學習μC/OS-Ⅱ的讀者,可以很容易地在μC/OS-Ⅱ作業系統上撰寫自己專案的任務,由此開啟學習μC/OS-Ⅱ作業系統的大門。同時,在μC/OS-Ⅱ作業系統的平臺上,還提供了μC/OS-Ⅱ的多個任務程式、STM32 CAN通訊程式、TCP乙太網通訊程式、基於W5100晶片的乙太網通訊程式、雙機備份程式、PID控制演算法程式、FSMC記憶體擴充程式、對DCS主站下載的設定資訊進行解析等程式。
PWM輸出程式碼、獨立看門狗程式碼、視窗看門狗程式碼、USART串列通訊程式碼和RTC程式碼是在目前使用最廣泛的正點原子STM32F103戰艦開發板上偵錯透過的; μC/OS-Ⅱ程式碼是在奮鬥STM32開發板V5上偵錯透過的。讀者也可以將上述程式碼移植到自己的STM32開發板上。
本書共13章。第1章對STM32嵌入式微控制器最小系統設計進行了概述,介紹了STM32F1系列產品系統架構和STM32F103ZET6內部結構、STM32F103ZET6的記憶體映射、STM32F103ZET6的時鐘結構、STM32F103VET6的接腳、STM32F103VET6最小系統設計; 第2章說明了人機介面設計與應用實例,包括獨立式鍵盤介面設計、矩陣式鍵盤介面設計、矩陣式鍵盤的介面實例、顯示技術的發展及其特點、LED顯示器介面設計和觸控式螢幕技術; 第3章說明了DGUS彩色液晶顯示幕應用實例,包括螢幕儲存空間、硬體設定檔、DGUS組態軟體安裝和使用說明、專案下載、DGUS螢幕顯示變數設定方法及其指令詳解和透過USB對DGUS螢幕進行偵錯; 第4章說明了旋轉編碼器設計實例,包括旋轉編碼器的介面設計、呼吸機按鍵與旋轉編碼器程式結構、按鍵掃描與旋轉編碼器中斷檢測程式和鍵值存取程式; 第5章說明了PWM輸出與看門狗計時器應用實例,包括STM32F103計時器概述、STM32通用計時器、STM32 PWM輸出應用實例和看門狗計時器; 第6章說明了USART與Modbus通訊協定應用實例,包括串列通訊基礎、STM32的USART工作原理、STM32的USART串列通訊應用實例、外部匯流排、Modbus通訊協定和PMM2000電力網路儀表Modbus-RTU通訊協定; 第7章說明了SPI與鐵電記憶體介面應用實例,包括STM32的SPI通訊原理、STM32F103的SPI工作原理和STM32的SPI與鐵電記憶體介面應用實例; 第8章說明了I2C與日曆時鐘介面應用實例,包括STM32的I2C通訊原理、STM32F103的I2C介面和STM32的I2C與日曆時鐘介面應用實例; 第9章說明了CAN通訊轉換器設計實例,包括CAN的特點、STM32的CAN匯流排概述、STM32的bxCAN工作模式、STM32的bxCAN功能描述、CAN匯流排收發器、CAN通訊轉換器概述、CAN通訊轉換器微控制器主電路的設計、CAN通訊轉換器UART驅動電路的設計、CAN通訊轉換器CAN匯流排隔離驅動電路的設計、CAN通訊轉換器USB介面電路的設計和CAN通訊轉換器的程式設計; 第10章說明了電力網路儀表設計實例,包括PMM2000電力網路儀表概述、PMM2000電力網路儀表的硬體設計、週期和頻率測量、STM32F103VBT6初始化程式、電力網路儀表的演算法、LED數位管動態顯示程式設計和PMM2000電力網路儀表在數位化變電站中的應用; 第11章說明了μC/OS-Ⅱ在STM32上的移植與應用實例,包括μC/OS-Ⅱ介紹、嵌入式控制系統的軟體平臺和μC/OS-Ⅱ的移植與應用; 第12章說明了RTC與萬年曆應用實例,包括RTC、備份暫存器(BKP)、RTC的操作和萬年曆應用實例; 第13章說明了新型分散式控制系統設計實例,包括新型DCS概述、現場控制站的組成、新型DCS通訊網路、新型DCS控制卡的硬體設計、新型DCS控制卡的軟體設計、控制演算法的設計、8通道類比量輸入電路板(8AI)的設計、8通道熱電偶電路板(8TC)的設計、8通道熱電阻電路板(8RTD)的設計、4通道類比量輸出電路板(4AO)的設計、16通道數位量輸入電路板(16DI)的設計、16通道數位量輸出電路板(16DO)的設計、8通道脈衝量量輸入電路板(8PI)的設計和嵌入式控制系統可靠性與安全性技術。
本書結合編者30多年的科學研究和教學經驗,遵循「循序漸進,理論與實踐並重,共通性與個性兼顧」的原則,將理論實踐一體化的教學方式融入其中。實踐案例由淺入深,層層遞進,在幫助讀者快速掌握某一外接裝置功能的同時,有效融合其他外部設備。
在此對本書引用的參考文獻的作者一併表示真誠的感謝。由於編者水準有限,加上時間倉促,書中不妥之處在所難免,敬請讀者們不吝指正。
編者2024年1月