最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

MicroPython內(nèi)核開發(fā)筆記——基于MM32F3微控制器

2023-07-22 20:52 作者:劉姥姥看人間  | 我要投稿

鏈接:https://pan.baidu.com/s/1RklzXrZyEQM6PRTAzkrS5Q?pwd=yhgg?

提取碼:yhgg

  MicroPython本身使用GNUC進(jìn)行開發(fā),在微控制器上實(shí)現(xiàn)了Python 3的基本功能,擁有完備的解析器、編譯器、虛擬機(jī)和類庫等。在保留了Python語言主要特性的基礎(chǔ)上,MicroPython還對(duì)微控制器的底層進(jìn)行了封裝,將常用功能都封裝到庫中,甚至為一些常用的傳感器和硬件編寫了專門的驅(qū)動(dòng)。
  全書共17章,在內(nèi)容上可分為3部分:搭建環(huán)境與基本方法(第1、2章)、移植和啟用核心功能(第3~7章)、設(shè)計(jì)實(shí)現(xiàn)更多模塊(第8~17章),并配備了豐富的樣例程序,用于驗(yàn)證MicroPython功能模塊可正常工作,并演示同這些模塊相關(guān)的典型編程方法。
  《MicroPython內(nèi)核開發(fā)筆記——基于MM32F3微控制器(清華開發(fā)者書庫)》力求理論與實(shí)踐緊密結(jié)合,內(nèi)容翔實(shí),實(shí)例豐富,可操作性強(qiáng)。該書可作為高等院?!扒度胧较到y(tǒng)”相關(guān)課程的教材,也可供從事嵌入式系統(tǒng)開發(fā)與應(yīng)用的工程技術(shù)人員自學(xué),還可為電子愛好者使用嵌入式系統(tǒng)實(shí)現(xiàn)創(chuàng)意作品提供參考。

作者簡(jiǎn)介

  蘇勇,現(xiàn)就職于上海靈動(dòng)微電子股份有限公司。曾就職于恩智浦半導(dǎo)體(飛思卡爾半導(dǎo)體并入),歷任嵌入式軟件工程師、高級(jí)系統(tǒng)應(yīng)用工程師、軟件與系統(tǒng)工程經(jīng)理。主要基于微控制器平臺(tái)進(jìn)行軟件開發(fā),擅長對(duì)IP外設(shè)建模并設(shè)計(jì)驅(qū)動(dòng),擅長嵌入式系統(tǒng)的軟件架構(gòu)設(shè)計(jì)及深度系統(tǒng)優(yōu)化,熟悉IOT和AI等技術(shù)領(lǐng)域的應(yīng)用及相關(guān)的產(chǎn)品開發(fā)。熟悉基于微控制器的大型軟件項(xiàng)目開發(fā)與管理。
  
  卓晴,清華大學(xué)自動(dòng)化系副教授,主要研究領(lǐng)域包括智能信息處理、嵌入式系統(tǒng)和功率電子等。榮獲國家級(jí)教學(xué)成果獎(jiǎng)一等獎(jiǎng)、北京市教學(xué)成果獎(jiǎng)一等獎(jiǎng)等,講授課程包括“信號(hào)與系統(tǒng)”“人工神經(jīng)網(wǎng)絡(luò)”等。從2006年開始負(fù)責(zé)組織全國大學(xué)生智能車競(jìng)賽活動(dòng)至今。

第1章MicroPython: 用Python對(duì)微控制器編程


1.1緣起


1.1.1一切源自Python


1.1.2從桌面系統(tǒng)到微控制器


1.1.3從業(yè)余愛好到商業(yè)項(xiàng)目


1.1.4Python與STEM學(xué)科


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開發(fā)板


1.3.2ESP8266/ESP32開發(fā)板


1.3.3BBC Micro: Bit開發(fā)板


1.3.4Adafruit和支持CircuitPython的一些開發(fā)板


1.4MicroPython編程體驗(yàn)


1.4.1REPL


1.4.2命令行工具


1.4.3MicroPython集成開發(fā)環(huán)境


1.4.4編寫MicroPython代碼


1.5MicroPython應(yīng)用場(chǎng)景


1.5.1驗(yàn)證新產(chǎn)品原型設(shè)計(jì)


1.5.2驗(yàn)證硬件系統(tǒng)


1.5.3編程教育


1.6本章小結(jié)


第2章準(zhǔn)備MicroPython開發(fā)環(huán)境


2.1MicroPython源碼


2.1.1獲得MicroPython的源代碼


2.1.2MicroPython源碼文件結(jié)構(gòu)分析


2.2基于Windows操作系統(tǒng)搭建MicroPython編譯環(huán)境


2.2.1安裝msys2基礎(chǔ)軟件包


2.2.2在msys2中安裝make


2.2.3在msys2中安裝Python


2.2.4在msys2中安裝GCC工具鏈


2.2.5在msys2中導(dǎo)入armnoneeabigcc


2.2.6編譯minimal工程驗(yàn)證編譯工具鏈


2.3硬件平臺(tái)介紹


2.3.1MM32F3微控制器


2.3.2PLUSF3270開發(fā)板


2.3.3F3270最小系統(tǒng)實(shí)驗(yàn)板


2.3.4POKTKE18F開發(fā)板


2.3.5MindSDK軟件包


2.4本章小結(jié)


第3章移植MicroPython最小工程


3.1MicroPython的最小工程


3.1.1minimal項(xiàng)目目錄下的文件


3.1.2從Makefile追溯編譯過程


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


3.2.1在lib目錄中添加MindSDK代碼


3.2.2在ports目錄中創(chuàng)建mm32f3項(xiàng)目目錄


3.3首次在MM32F3微控制器上運(yùn)行MicroPython


3.3.1下載可執(zhí)行文件到MM32F3微控制器


3.3.2驗(yàn)證及演示程序


3.4本章小結(jié)


第4章MicroPython類模塊實(shí)現(xiàn)綜述


4.1基本的類模塊封裝模式


4.1.1新建類模塊的源文件


4.1.2編輯Makefile


4.1.3編譯運(yùn)行


4.2本章小結(jié)


第5章新建Pin類模塊


5.1新建硬件外設(shè)類模塊框架


5.2定義machine_pin_obj_t結(jié)構(gòu)


5.3在構(gòu)造函數(shù)中實(shí)現(xiàn)返回實(shí)例化對(duì)象


5.4在構(gòu)造函數(shù)中實(shí)現(xiàn)多種傳參方式指定實(shí)例化對(duì)象


5.5print()和call()


5.5.1print()方法


5.5.2call()方法


5.5.3其他基礎(chǔ)類屬性函數(shù)


5.6實(shí)驗(yàn)


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


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


5.7本章小結(jié)


第6章移植utime類模塊


6.1utime類模塊簡(jiǎn)介


6.2MicroPython自帶的utime類實(shí)現(xiàn)


6.3對(duì)接硬件定時(shí)器相關(guān)的函數(shù)實(shí)現(xiàn)


6.4在MicroPython中添加utime類模塊


6.5實(shí)驗(yàn)


6.6本章小結(jié)


第7章移植SD卡類模塊實(shí)現(xiàn)文件系統(tǒng)


7.1VFS文件系統(tǒng)調(diào)用關(guān)系解析


7.1.1vfs_blockdev系列函數(shù)


7.1.2VFS統(tǒng)一文件系統(tǒng)API


7.2從文件系統(tǒng)中執(zhí)行Python腳本文件解析


7.2.1mp_lexer_new_from_file()


7.2.2mp_import_stat()和mp_builtin_open()


7.3對(duì)接硬件SD卡驅(qū)動(dòng)程序


7.4新建SDCard類模塊


7.4.1make_new()


7.4.2read_blocks() & write_blocks()


7.4.3ioctl()


7.4.4創(chuàng)建SDCard類模塊的類型對(duì)象


7.4.5添加SDCard類


7.4.6更新Makefile


7.5調(diào)整MicroPython內(nèi)核支持文件系統(tǒng)


7.5.1改寫main()函數(shù)支持文件系統(tǒng)


7.5.2配置mpconfigport.h文件


7.6啟用uos類模塊


7.7實(shí)驗(yàn)


7.7.1運(yùn)行來自SD卡的main.py


7.7.2在REPL中讀取main.py文件的內(nèi)容


7.7.3在文件系統(tǒng)中創(chuàng)建并寫入文件


7.7.4使用uos類模塊查看和刪除文件系統(tǒng)中的文件


7.8本章小結(jié)


第8章啟用浮點(diǎn)和數(shù)學(xué)計(jì)算模塊


8.1一些嘗試


8.2啟用浮點(diǎn)數(shù)和math數(shù)學(xué)計(jì)算模塊


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


8.2.2在Makefile中補(bǔ)充math函數(shù)的實(shí)現(xiàn)代碼


8.3僅啟用浮點(diǎn)數(shù)但不啟用math數(shù)學(xué)計(jì)算模塊


8.4啟用復(fù)數(shù)及cmath復(fù)數(shù)計(jì)算模塊


8.5實(shí)驗(yàn)


8.5.1支持新功能產(chǎn)生代碼量變化的統(tǒng)計(jì)


8.5.2使用math模塊進(jìn)行計(jì)算


8.5.3使用cmath模塊進(jìn)行計(jì)算


8.5.4實(shí)現(xiàn)FFT計(jì)算過程


8.6本章小結(jié)


第9章新建DAC類模塊


9.1分析已有移植項(xiàng)目的范例實(shí)現(xiàn)


9.1.1print()方法


9.1.2write()方法


9.1.3make_new()方法與mdac_obj_t結(jié)構(gòu)體


9.2設(shè)計(jì)新建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實(shí)驗(yàn)


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


9.3.2使用DAC輸出正弦波形


9.4本章小結(jié)



第10章新建ADC類模塊


10.1ADC類模塊的應(yīng)用模型


10.2ADC硬件外設(shè)模塊


10.2.1關(guān)于ADC硬件轉(zhuǎn)換器的觸發(fā)機(jī)制


10.2.2考慮轉(zhuǎn)換隊(duì)列的情況


10.3新建ADC類模塊


10.3.1machine_adc_obj_t


10.3.2make_new()


10.3.3init()


10.3.4read_u16()


10.3.5系統(tǒng)方法call()和print()


10.3.6創(chuàng)建machine_adc_type


10.3.7向MicroPython中集成ADC類模塊


10.4實(shí)驗(yàn)


10.4.1使用ADC類模塊測(cè)量引腳電壓


10.4.2ADC與DAC的聯(lián)合實(shí)驗(yàn)


10.5本章小結(jié)


第11章新建UART類模塊


11.1分析stream框架


11.1.1mp_stream_p_t結(jié)構(gòu)體類型


11.1.2stream對(duì)外提供的屬性方法


11.1.3stream內(nèi)部的適配函數(shù)


11.2提取移植接口并實(shí)現(xiàn)移植


11.2.1適配硬件相關(guān)的函數(shù)


11.2.2基于中斷機(jī)制的收發(fā)過程


11.2.3輪詢發(fā)送和中斷接收機(jī)制的接口函數(shù)


11.2.4其他必要的方法


11.2.5向MicroPython中集成UART類模塊


11.3實(shí)驗(yàn)


11.4本章小結(jié)


第12章新建SPI類模塊


12.1啟用machine_spi框架


12.2在移植項(xiàng)目中啟用SoftSPI類模塊


12.2.1softspi.c中的SPI總線驅(qū)動(dòng)


12.2.2用于產(chǎn)生波特率的軟件延時(shí)函數(shù)


12.2.3完成移植需要具體平臺(tái)實(shí)現(xiàn)的函數(shù)



12.2.4向machine類中添加SoftSPI類模塊


12.3創(chuàng)建硬件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實(shí)驗(yàn)


12.4.1顯示SPI信息


12.4.2使用SPI發(fā)送過程輸出波形


12.4.3使用SPI讀入數(shù)據(jù)


12.4.4使用SPI類訪問W25Q64


12.5本章小結(jié)


第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實(shí)驗(yàn)


13.4.1PLUSF3270


13.4.2POKTKE18F


13.5本章小結(jié)


第14章新建PWM類模塊


14.1參考范例


14.2創(chuàng)建硬件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實(shí)驗(yàn)


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


14.3.2動(dòng)態(tài)改變占空比


14.3.3動(dòng)態(tài)改變頻率


14.4本章小結(jié)


第15章新建Timer類模塊


15.1參考范例


15.2創(chuàng)建硬件定時(shí)器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實(shí)現(xiàn)硬件定時(shí)器中斷服務(wù)


15.3實(shí)驗(yàn)


15.3.1通過定時(shí)器中斷控制小燈閃爍


15.3.2周期性采集ADC信號(hào)


15.4本章小結(jié)


第16章使用mem類方法


16.1mem類方法的使用


16.2探究數(shù)組方法的實(shí)現(xiàn)


16.3一些Python驅(qū)動(dòng)外設(shè)的用例


16.3.1訪問微控制器的設(shè)備唯一編號(hào)


16.3.2使用COMP外設(shè)模塊


16.3.3使用靈活高精度PWM


16.4本章小結(jié)


第17章使用Thonny IDE開發(fā)MicroPython


17.1Thonny簡(jiǎn)介


17.2改寫MicroPython代碼適配Thonny


17.3在Thonny中調(diào)試MicroPython


17.3.1在Shell中執(zhí)行Python腳本


17.3.2在代碼編輯區(qū)編寫代碼并運(yùn)行


17.4實(shí)現(xiàn)下載模式和調(diào)試模式


17.5本章小結(jié)


附錄A圖索引


后記



查看全部↓


MicroPython內(nèi)核開發(fā)筆記——基于MM32F3微控制器的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
南安市| 滨海县| 慈利县| 新密市| 咸阳市| 卢氏县| 临沭县| 横峰县| 伽师县| 汉沽区| 内丘县| 仲巴县| 邹平县| 山东省| 秦皇岛市| 泸定县| 麻栗坡县| 富裕县| 常宁市| 宜昌市| 靖州| 镇安县| 大方县| 葫芦岛市| 甘德县| 临泽县| 寿阳县| 永德县| 遂宁市| 武陟县| 三门峡市| 舞钢市| 惠州市| 寻甸| 中牟县| 登封市| 华容县| 遂宁市| 雅江县| 静宁县| 景洪市|