MicroPython内核开发笔记——基于MM32F3微控制器

MicroPython内核开发笔记——基于MM32F3微控制器
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: ,
2023-06
版次: 1
ISBN: 9787302630289
定价: 89.00
装帧: 其他
开本: 16开
纸张: 胶版纸
2人买过
  • 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图索引

    后记

     
  • 内容简介:
    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图索引

    后记

     
查看详情
12
相关图书 / 更多
MicroPython内核开发笔记——基于MM32F3微控制器
Microsoft 365+Power Platform企业数字化转型全攻略
王凤辉
MicroPython内核开发笔记——基于MM32F3微控制器
MindSpore深度学习入门与实践
李万清、张俊峰、李枨、刘俊 编
MicroPython内核开发笔记——基于MM32F3微控制器
Midjourney人工智能绘画从入门到精通
盛少
MicroPython内核开发笔记——基于MM32F3微控制器
MindManager思维导图与信息可视化官方标准教程(全彩印刷)
肖新华、苗景和 著
MicroPython内核开发笔记——基于MM32F3微控制器
Micro850控制器编程与应用
徐雪松、杨静、张永贤、池学鑫 编
MicroPython内核开发笔记——基于MM32F3微控制器
Midjourney AI绘画从入门到精通
梁翃 著
MicroPython内核开发笔记——基于MM32F3微控制器
MicroPython开发与实战
雷学堂 著
MicroPython内核开发笔记——基于MM32F3微控制器
MindSpore深度学习高阶技术
陈雷
MicroPython内核开发笔记——基于MM32F3微控制器
Microwave Devices and Antennas 微波器件与天线
安婷 著;安婷 编;胡昆 译;韩春辉;韩春辉;刘笑飞
MicroPython内核开发笔记——基于MM32F3微控制器
Micro850PLC、变频器及触摸屏综合应用技术
姜磊 编
MicroPython内核开发笔记——基于MM32F3微控制器
Midjourney人工智能AI绘画教程:从娱乐到商用
雷波 著
MicroPython内核开发笔记——基于MM32F3微控制器
Micro fluidization: Fundamentals and Applications (微型流化床:基础与应用)
许光文 著
您可能感兴趣 / 更多
MicroPython内核开发笔记——基于MM32F3微控制器
老了,我们怎么办——中国养老实践的九如模式
苏勇;于保平;邓少军
MicroPython内核开发笔记——基于MM32F3微控制器
现代组织行为学(第三版)
苏勇;何智美