MicroPython 內核開發筆記 — 基於 MM32F3 微控制器

蘇勇,卓晴

  • 出版商: 清華大學
  • 出版日期: 2023-06-01
  • 售價: $534
  • 貴賓價: 9.5$507
  • 語言: 簡體中文
  • 頁數: 329
  • 裝訂: 平裝
  • ISBN: 7302630283
  • ISBN-13: 9787302630289
  • 相關分類: 單晶片
  • 立即出貨

  • MicroPython 內核開發筆記 — 基於 MM32F3 微控制器-preview-1
  • MicroPython 內核開發筆記 — 基於 MM32F3 微控制器-preview-2
  • MicroPython 內核開發筆記 — 基於 MM32F3 微控制器-preview-3
MicroPython 內核開發筆記 — 基於 MM32F3 微控制器-preview-1

買這商品的人也買了...

商品描述

MicroPython本身使用GNU C進行開發,在微控制器上實現了Python 3的基本功能,擁有完備的解析器、編譯器、虛擬機和類庫等。在保留了Python語言主要特性的基礎上,MicroPython還對微控制器的底層進行了封裝,將常用功能都封裝到庫中,甚至為一些常用的傳感器和硬件編寫了專門的驅動。 全書共17章,在內容上可分為3部分: 搭建環境與基本方法(第1、2章)、移植和啟用核心功能(第3~7章)、設計實現更多模塊(第8~17章),並配備了豐富的樣例程序,用於驗證MicroPython功能模塊可正常工作,並演示同這些模塊相關的典型編程方法。 本書力求理論與實踐緊密結合,內容翔實,實例豐富,可操作性強。本書可作為高等院校“嵌入式系統”相關課程的教材,也可供從事嵌入式系統開發與應用的工程技術人員自學,還可為電子愛好者使用嵌入式系統實現創意作品提供參考。 通過在線Git代碼倉庫 https://gitee.com/suyong_yq/micropythonsu可以下載**代碼。

目錄大綱

 

 

目錄

第1章MicroPython: 用Python對微控制器編程

 

1.1緣起

 

1.1.1一切源自Python

 

1.1.2從桌面系統到微控制器

 

1.1.3從業餘愛好到商業項目

 

1.1.4Python與STEM學科

 

1.2微控制器軟件

 

1.2.1什麽是微控制器

 

1.2.2為什麽使用MicroPython

 

1.2.3為什麽不是C++

 

1.2.4匯編語言怎麽樣

 

1.2.5BASIC語言怎麽樣

 

1.2.6與樹莓派相比

 

1.3MicroPython支持的硬件

 

1.3.1第一塊MicroPython開發板

 

1.3.2ESP8266/ESP32開發板

 

1.3.3BBC Micro: Bit開發板

 

1.3.4Adafruit和支持CircuitPython的一些開發板

 

1.4MicroPython編程體驗

 

1.4.1REPL

 

1.4.2命令行工具

 

1.4.3MicroPython集成開發環境

 

1.4.4編寫MicroPython代碼

 

1.5MicroPython應用場景

 

1.5.1驗證新產品原型設計

 

1.5.2驗證硬件系統

 

1.5.3編程教育

 

1.6本章小結

 

第2章準備MicroPython開發環境

 

2.1MicroPython源碼

 

2.1.1獲得MicroPython的源代碼

 

2.1.2MicroPython源碼文件結構分析

 

2.2基於Windows操作系統搭建MicroPython編譯環境

 

2.2.1安裝msys2基礎軟件包

 

2.2.2在msys2中安裝make

 

2.2.3在msys2中安裝Python

 

2.2.4在msys2中安裝GCC工具鏈

 

2.2.5在msys2中導入armnoneeabigcc

 

2.2.6編譯minimal工程驗證編譯工具鏈

 

2.3硬件平臺介紹

 

2.3.1MM32F3微控制器

 

2.3.2PLUSF3270開發板

 

2.3.3F3270最小系統實驗板

 

2.3.4POKTKE18F開發板

 

2.3.5MindSDK軟件包

 

2.4本章小結

 

第3章移植MicroPython最小工程

 

3.1MicroPython的最小工程

 

3.1.1minimal項目目錄下的文件

 

3.1.2從Makefile追溯編譯過程

 

3.2基於MM32F3微控制器移植minimal工程

 

3.2.1在lib目錄中添加MindSDK代碼

 

3.2.2在ports目錄中創建mm32f3項目目錄

 

3.3首次在MM32F3微控制器上運行MicroPython

 

3.3.1下載可執行文件到MM32F3微控制器

 

3.3.2驗證及演示程序

 

3.4本章小結

 

第4章MicroPython類模塊實現綜述

 

4.1基本的類模塊封裝模式

 

4.1.1新建類模塊的源文件

 

4.1.2編輯Makefile

 

4.1.3編譯運行

 

4.2本章小結

 

第5章新建Pin類模塊

 

5.1新建硬件外設類模塊框架

 

5.2定義machine_pin_obj_t結構

 

5.3在構造函數中實現返回實例化對象

 

5.4在構造函數中實現多種傳參方式指定實例化對象

 

5.5print()和call()

 

5.5.1print()方法

 

5.5.2call()方法

 

5.5.3其他基礎類屬性函數

 

5.6實驗

 

5.6.1向引腳輸出電平控制小燈亮滅

 

5.6.2讀取引腳電平獲取按鍵值

 

5.7本章小結

 

第6章移植utime類模塊

 

6.1utime類模塊簡介

 

6.2MicroPython自帶的utime類實現

 

6.3對接硬件定時器相關的函數實現

 

6.4在MicroPython中添加utime類模塊

 

6.5實驗

 

6.6本章小結

 

第7章移植SD卡類模塊實現文件系統

 

7.1VFS文件系統調用關系解析

 

7.1.1vfs_blockdev系列函數

 

7.1.2VFS統一文件系統API

 

7.2從文件系統中執行Python腳本文件解析

 

7.2.1mp_lexer_new_from_file()

 

7.2.2mp_import_stat()和mp_builtin_open()

 

7.3對接硬件SD卡驅動程序

 

7.4新建SDCard類模塊

 

7.4.1make_new()

 

7.4.2read_blocks() & write_blocks()

 

7.4.3ioctl()

 

7.4.4創建SDCard類模塊的類型對象

 

7.4.5添加SDCard類

 

7.4.6更新Makefile

 

7.5調整MicroPython內核支持文件系統

 

7.5.1改寫main()函數支持文件系統

 

7.5.2配置mpconfigport.h文件

 

7.6啟用uos類模塊

 

7.7實驗

 

7.7.1運行來自SD卡的main.py

 

7.7.2在REPL中讀取main.py文件的內容

 

7.7.3在文件系統中創建並寫入文件

 

7.7.4使用uos類模塊查看和刪除文件系統中的文件

 

7.8本章小結

 

第8章啟用浮點和數學計算模塊

 

8.1一些嘗試

 

8.2啟用浮點數和math數學計算模塊

 

8.2.1在mpconfigport.h文件中添加配置宏

 

8.2.2在Makefile中補充math函數的實現代碼

 

8.3僅啟用浮點數但不啟用math數學計算模塊

 

8.4啟用復數及cmath復數計算模塊

 

8.5實驗

 

8.5.1支持新功能產生代碼量變化的統計

 

8.5.2使用math模塊進行計算

 

8.5.3使用cmath模塊進行計算

 

8.5.4實現FFT計算過程

 

8.6本章小結

 

第9章新建DAC類模塊

 

9.1分析已有移植項目的範例實現

 

9.1.1print()方法

 

9.1.2write()方法

 

9.1.3make_new()方法與mdac_obj_t結構體

 

9.2設計新建DAC類模塊

 

9.2.1一些新需求

 

9.2.2machine_dac_obj_t 

 

9.2.3make_new()和init()

 

9.2.4write_u16()

 

9.2.5call()

 

9.2.6print()

 

9.2.7machine_dac_type

 

9.2.8向MicroPython中添加新建DAC類模塊

 

9.3實驗

 

9.3.1使用DAC類模塊在引腳上輸出模擬電壓

 

9.3.2使用DAC輸出正弦波形

 

9.4本章小結

 

 

第10章新建ADC類模塊

 

10.1ADC類模塊的應用模型

 

10.2ADC硬件外設模塊

 

10.2.1關於ADC硬件轉換器的觸發機制

 

10.2.2考慮轉換隊列的情況

 

10.3新建ADC類模塊

 

10.3.1machine_adc_obj_t

 

10.3.2make_new()

 

10.3.3init()

 

10.3.4read_u16()

 

10.3.5系統方法call()和print()

 

10.3.6創建machine_adc_type

 

10.3.7向MicroPython中集成ADC類模塊

 

10.4實驗

 

10.4.1使用ADC類模塊測量引腳電壓

 

10.4.2ADC與DAC的聯合實驗

 

10.5本章小結

 

第11章新建UART類模塊

 

11.1分析stream框架

 

11.1.1mp_stream_p_t結構體類型

 

11.1.2stream對外提供的屬性方法

 

11.1.3stream內部的適配函數

 

11.2提取移植接口並實現移植

 

11.2.1適配硬件相關的函數

 

11.2.2基於中斷機制的收發過程

 

11.2.3輪詢發送和中斷接收機制的接口函數

 

11.2.4其他必要的方法

 

11.2.5向MicroPython中集成UART類模塊

 

11.3實驗

 

11.4本章小結

 

第12章新建SPI類模塊

 

12.1啟用machine_spi框架

 

12.2在移植項目中啟用SoftSPI類模塊

 

12.2.1softspi.c中的SPI總線驅動

 

12.2.2用於產生波特率的軟件延時函數

 

12.2.3完成移植需要具體平臺實現的函數

 

 

12.2.4向machine類中添加SoftSPI類模塊

 

12.3創建硬件SPI類模塊

 

12.3.1machine_hw_spi_obj_t

 

12.3.2make_new()

 

12.3.3transfer()

 

12.3.4print()

 

12.3.5machine_hw_spi_type

 

12.3.6向machine類中添加硬件SPI類模塊

 

12.4實驗

 

12.4.1顯示SPI信息

 

12.4.2使用SPI發送過程輸出波形

 

12.4.3使用SPI讀入數據

 

12.4.4使用SPI類訪問W25Q64

 

12.5本章小結

 

第13章新建I2C類模塊

 

13.1通用I2C類模塊框架machine_i2c

 

13.2軟件I2C類模塊SoftI2C

 

13.3硬件I2C類模塊I2C

 

13.3.1transfer_single()

 

13.3.2machine_hw_i2c_type

 

13.3.3make_new()

 

13.3.4print()

 

13.3.5集成硬件I2C模塊到machine模塊中

 

13.4實驗

 

13.4.1PLUSF3270

 

13.4.2POKTKE18F

 

13.5本章小結

 

第14章新建PWM類模塊

 

14.1參考範例

 

14.2創建硬件PWM模塊

 

14.2.1machine_pwm_obj_t

 

14.2.2make_new()

 

14.2.3init()和deinit()

 

14.2.4freq()

 

14.2.5duty()

 

14.2.6print()

 

14.2.7向machine類中添加PWM類模塊

 

 

14.3實驗

 

14.3.1使用PWM類模塊輸出基本波形

 

14.3.2動態改變占空比

 

14.3.3動態改變頻率

 

14.4本章小結

 

第15章新建Timer類模塊

 

15.1參考範例

 

15.2創建硬件定時器Timer類模塊

 

15.2.1machine_timer_obj_t

 

15.2.2make_new()

 

15.2.3print()

 

15.2.4init()

 

15.2.5deinit()

 

15.2.6del()

 

15.2.7實現硬件定時器中斷服務

 

15.3實驗

 

15.3.1通過定時器中斷控制小燈閃爍

 

15.3.2周期性採集ADC信號

 

15.4本章小結

 

第16章使用mem類方法

 

16.1mem類方法的使用

 

16.2探究數組方法的實現

 

16.3一些Python驅動外設的用例

 

16.3.1訪問微控制器的設備唯一編號

 

16.3.2使用COMP外設模塊

 

16.3.3使用靈活高精度PWM

 

16.4本章小結

 

第17章使用Thonny IDE開發MicroPython

 

17.1Thonny簡介

 

17.2改寫MicroPython代碼適配Thonny

 

17.3在Thonny中調試MicroPython

 

17.3.1在Shell中執行Python腳本

 

17.3.2在代碼編輯區編寫代碼並運行

 

17.4實現下載模式和調試模式

 

17.5本章小結

 

附錄A圖索引

 

後記