Эх сурвалжийг харах

【完善】:micropython 介绍文档

SummerGift 7 жил өмнө
parent
commit
29b4390285

+ 1 - 1
docs/Development_manual_document_section/03-Basic_Module/04-math.md

@@ -2,7 +2,7 @@
 
 !!! abstract "简介"
     **math** 模块提供了对 C 标准定义的数学函数的访问。  
-    本模块需要带有硬件FPU,精度是32位,这个模块需要浮点功能支持。
+    本模块需要带有硬件 FPU,精度是32位,这个模块需要浮点功能支持。
 
 ## 函数
 

+ 10 - 10
docs/Development_manual_document_section/04-Hardware_Control_Module/02-machine-Pin.md

@@ -3,7 +3,7 @@
 !!! abstract "简介"
     **machine.Pin** 类是 machine 模块下面的一个硬件类,用于对引脚的配置和控制,提供对 `Pin` 设备的操作方法。
 
-`Pin` 对象用于控制输入/输出引脚(也称为 `GPIO`)。`Pin` 对象通常与一个物理引脚相关联,他可以驱动输出电压和读取输入电压。Pin 类中有设置引脚模式(输入/输出)的方法,也有获取和设置数字逻辑(0 或 1)的方法。
+`Pin` 对象用于控制输入/输出引脚(也称为 `GPIO`)。`Pin` 对象通常与一个物理引脚相关联,他可以驱动输出电压和读取输入电压。Pin 类中有设置引脚模式(输入/输出)的方法,也有获取和设置数字逻辑(`0``1`)的方法。
 
 一个 `Pin` 对象是通过一个标识符来构造的,它明确地指定了一个特定的输入输出。标识符的形式和物理引脚的映射是特定于一次移植的。标识符可以是整数,字符串或者是一个带有端口和引脚号码的元组。在 RT-Thread MicroPython 中,引脚标识符是一个由代号和引脚号组成的元组,如 `Pin(("X1", 33), Pin.OUT_PP)` 中的` ("X1", 33)`。
 
@@ -12,7 +12,7 @@
 在 RT-Thread MicroPython 中 `Pin` 对象的构造函数如下:
 
 ### **class machine.Pin**( id, mode = -1, pull = -1,value)
-- **id** :由用户自定义的引脚名和 `Pin`  设备引脚号组成,如("X1", 33),'X1' 为用户自定义的引脚名,'33' 为 `RT-Thread Pin` 设备驱动在本次移植中的引脚号。
+- **id** :由用户自定义的引脚名和 `Pin`  设备引脚号组成,如("X1", 33),"X1" 为用户自定义的引脚名,`33` 为 `RT-Thread Pin` 设备驱动在本次移植中的引脚号。
 
 - **mode** : 指定引脚模式,可以是以下几种:
     - **Pin.IN** :输入模式
@@ -28,12 +28,12 @@
 
 ## 方法
 
-### **Pin.init**(mode=-1, pull=-1, *, value, drive, alt)
+### **Pin.init**(mode= -1, pull= -1, *, value, drive, alt)
 根据输入的参数重新初始化引脚。只有那些被指定的参数才会被设置,其余引脚的状态将保持不变,详细的参数可以参考上面的构造函数。
 
 ### **Pin.value**([x])
 如果没有给定参数 `x` ,这个方法可以获得引脚的值。  
-如果给定参数 `x` ,如 0 或 1,那么设置引脚的值为 逻辑 '0' 或 逻辑 '1'
+如果给定参数 `x` ,如 `0` 或 `1`,那么设置引脚的值为 逻辑 `0` 或 逻辑 `1`
 
 ### **Pin.name**()
 返回引脚对象在构造时用户自定义的引脚名。
@@ -44,26 +44,26 @@
 
 ### 选择引脚模式:
 #### **Pin.IN**
-#### **Pin.OUT** 
+#### **Pin.OUT**
 #### **Pin.OPEN_DRAIN**
 
 ### 选择上/下拉模式:
-#### **Pin.PULL_UP** 
+#### **Pin.PULL_UP**
 #### **Pin.PULL_DOWN**
 #### **None**  
 使用值 `None` 代表不进行上下拉。
 
-## 示例 
+## 示例
 
 ```
 >>> from machine import Pin
->>> 
+>>>
 >>> p_out = Pin(("X1", 33), Pin.OUT_PP)
 >>> p_out.value(1)              # set io high
 >>> p_out.value(0)              # set io low
->>> 
+>>>
 >>> p_in = Pin(("X2", 32), Pin.IN, Pin.PULL_UP)
 >>> p_in.value()                # get value, 0 or 1
 ```
 
-  更多内容可参考 [machine.Pin](http://docs.micropython.org/en/latest/pyboard/library/machine.Pin.html)  。
+  更多内容可参考 [machine.Pin](http://docs.micropython.org/en/latest/pyboard/library/machine.Pin.html)  。

+ 6 - 6
docs/Development_manual_document_section/04-Hardware_Control_Module/03-machine-I2C.md

@@ -76,9 +76,9 @@
 将 `buf` 里的数据写入 `addr` 指定的从机的 `memaddr` 地址中。 
 这个方法没有返回值。
 
-## 示例 
+## 示例
 
-### `软件模拟 I2C ` 
+### `软件模拟 I2C `
 ```
 >>> from machine import Pin, I2C
 >>> clk = Pin(("clk", 43), Pin.OUT_OD)   # Select the 43 pin device as the clock
@@ -87,7 +87,7 @@
 >>> i2c.scan()                        # scan for slaves, returning a list of 7-bit addresses
 [81]                                  # Decimal representation
 >>> i2c.writeto(0x51, b'123')         # write 3 bytes to slave with 7-bit address 42
-3 
+3
 >>> i2c.readfrom(0x51, 4)             # read 4 bytes from slave with 7-bit address 42
 b'X\x08\x105'
 >>> i2c.readfrom_mem(0x51, 0x02, 1)   # read 1 bytes from memory of slave 0x51(7-bit),
@@ -96,10 +96,10 @@ b'\x12'                               # starting at memory-address 8 in the slav
                                       # starting at address 2 in the slave
 ```
 
-### `硬件 I2C ` 
+### `硬件 I2C `
 
 需要先开启 `I2C` 设备驱动,查找设备可以在 `msh` 中输入`list_device` 命令。  
-在构造函数的第一个参数传入 '0',系统就会搜索名为 'i2c0' 的设备,找到之后使用这个设备来构建 `I2C` 对象:
+在构造函数的第一个参数传入 `0`,系统就会搜索名为 `i2c0` 的设备,找到之后使用这个设备来构建 `I2C` 对象:
 
 ```
 >>> from machine import Pin, I2C
@@ -108,4 +108,4 @@ b'\x12'                               # starting at memory-address 8 in the slav
 [81]                                  # Decimal representation
 ```
 
-  更多内容可参考 [machine.I2C](http://docs.micropython.org/en/latest/pyboard/library/machine.I2C.html) 。
+  更多内容可参考 [machine.I2C](http://docs.micropython.org/en/latest/pyboard/library/machine.I2C.html) 。

+ 6 - 6
docs/Development_manual_document_section/04-Hardware_Control_Module/04-machine-SPI.md

@@ -26,8 +26,8 @@
 用给定的参数初始化`SPI`总线:
 
 - **baudrate** :`SCK` 时钟频率。
-- **polarity** :极性可以是 '0' 或 '1',是时钟空闲时所处的电平。
-- **phase** :相位可以是 '0' 或 '1',分别在第一个或者第二个时钟边缘采集数据。
+- **polarity** :极性可以是 `0` 或 `1`,是时钟空闲时所处的电平。
+- **phase** :相位可以是 `0` 或 `1`,分别在第一个或者第二个时钟边缘采集数据。
 - **bits** :每次传输的数据长度,一般是 8 位。
 - **firstbit** :传输数据从高位开始还是从低位开始,可以是 `SPI.MSB` 或者 `SPI.LSB`。
 - **sck** :用于 `sck` 的 `machine.Pin` 对象。
@@ -63,7 +63,7 @@
 
 ## 示例
 
-### `软件模拟 SPI ` 
+### `软件模拟 SPI `
 ```
 >>> from machine import Pin, SPI
 >>> clk = Pin(("clk", 43), Pin.OUT_PP)
@@ -77,10 +77,10 @@ SoftSPI(baudrate=500000, polarity=0, phase=0, sck=clk, mosi=mosi, miso=miso)
 b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
 ```
 
-### `硬件 SPI ` 
+### `硬件 SPI `
 
 需要先开启 `SPI` 设备驱动,查找设备可以在 `msh` 中输入`list_device` 命令。  
-在构造函数的第一个参数传入  '50',系统就会搜索名为 'spi50' 的设备,找到之后使用这个设备来构建 `SPI` 对象:
+在构造函数的第一个参数传入 `50`,系统就会搜索名为 `spi50` 的设备,找到之后使用这个设备来构建 `SPI` 对象:
 
 ```
 >>> from machine import SPI
@@ -97,4 +97,4 @@ bytearray(b'\xef')
 >>> spi.init(100000,0,0,8,1)     # Resetting SPI parameter
 ```
 
-  更多内容可参考 [machine.SPI](http://docs.micropython.org/en/latest/pyboard/library/machine.SPI.html) 。
+  更多内容可参考 [machine.SPI](http://docs.micropython.org/en/latest/pyboard/library/machine.SPI.html) 。

+ 2 - 5
docs/Development_manual_document_section/04-Hardware_Control_Module/05-machine-UART.md

@@ -13,7 +13,7 @@
 在给定总线上构造一个 `UART` 对象,`id` 取决于特定的移植。  
 初始化参数可以参考下面的 `UART.init` 方法。 
 
-使用硬件 UART 在初始化时只需传入 `UART` 设备的编号即可,如传入 '1' 表示 'uart1' 设备。   
+使用硬件 UART 在初始化时只需传入 `UART` 设备的编号即可,如传入 `1` 表示 `uart1` 设备。   
 初始化方式可参考 [示例](#_3)。
 
 ## 方法
@@ -27,9 +27,6 @@
 ### **UART.deinit**()
 关闭串口总线。
 
-### **UART.any**()
-如果有可用的字符,那么返回真。
-
 ### **UART.read**([nbytes])
 读取字符,如果指定读 n 个字节,那么最多读取 n 个字节,否则就会读取尽可能多的数据。
 返回值:一个包含读入数据的字节对象。如果如果超时则返回 `None`。
@@ -48,7 +45,7 @@
 
 ## 示例
 
-在构造函数的第一个参数传入 '1',系统就会搜索名为 'uart1' 的设备,找到之后使用这个设备来构建 `UART` 对象:
+在构造函数的第一个参数传入`1`,系统就会搜索名为 `uart1` 的设备,找到之后使用这个设备来构建 `UART` 对象:
 
 ```python
 from machine import UART

+ 31 - 3
docs/Development_manual_document_section/README.md

@@ -15,12 +15,40 @@
 
 - MicroPython 富有各种高级特性,比如交互式提示、任意精度整数、闭包函数、列表解析、生成器、异常处理等等。
 
-- MicroPython 的目标是尽可能与普通 Python 兼容,使开发者能够轻松地将代码从桌面端转移到微控制器或嵌入式系统。
+- MicroPython 的目标是尽可能与普通 Python 兼容,使开发者能够轻松地将代码从桌面端转移到微控制器或嵌入式系统。程序可移植性很强,因为不需要考虑底层驱动,所以程序移植变得轻松和容易。
 
 ## 1.2 MicroPython 的优势
 
 - Python 是一款容易上手的脚本语言,同时具有强大的功能,语法优雅简单。使用 MicroPython 编程可以降低嵌入式的开发门槛,让更多的人体验嵌入式的乐趣。
-
 - 通过 MicroPython 实现硬件底层的访问和控制,不需要了解底层寄存器、数据手册、厂家的库函数等,即可轻松控制硬件。
+- 外设与常用功能都有相应的模块,降低开发难度,使开发和移植变得容易和快速。
+
+## 1.3 MicroPython 的应用领域
+
+- MicroPython 在嵌入式系统上完整实现了 Python3 的核心功能,可以在产品开发的各个阶段给发开发者带来便利。
+- 通过  MicroPython  提供的库和函数,开发者可以快速控制 LED、液晶、舵机、多种传感器、SD、UART、I2C 等,实现各种功能,而不用再去研究底层模块的使用方法。这样不但降低了开发难度,而且减少了重复开发工作,可以加快开发速度,提高开发效率。以前需要较高水平的嵌入式工程师花费数天甚至数周才能完成的功能,现在普通的嵌入式开发者用几个小时就能实现类似的功能,而且要更加轻松和简单。
+- 随着半导体技术的不断发展,芯片的功能、内部的存储器容量和资源不断增加,成本不断降低,可以使用 MicroPython 来进行开发设计的应用领域越来越多。
+
+### 1.3.1 产品原型设计
+
+- 使用 MicroPython  对于产品原型设计、软件移植非常有好处,让开发过程变得轻松,充满乐趣。和传统开发方法相比,使用 MicroPython 开发产品原型的速度更快,程序也更容易实现模块化,更方便进行维护。程序不用反复编译、下载、仿真,有很多的库可以参考使用。
+- 网络功能是 MicroPython  的长处,在进行一些联网功能开发时可以利用已有的众多网络模块,这些功能如果使用C/C++ 来完成,会耗费几倍的时间。
+
+### 1.3.2 教育
+
+- MicroPython  使用简单、方便,性能好,非常适合于编程入门。在校学生或者业余爱好者都可以通过 MicroPython 快速的开发一些好玩的项目,在开发的过程中学习编程思想,提高自己的动手能力。
+
+### 1.3.3 创客 DIY
+
+- MicroPython 无需复杂的设置,不需要安装特别的软件和额外的硬件,使用任何文本编辑器就可以进行编程。大部分硬件功能,使用一个命令就能驱动,不用了解硬件底层就能快速开发。这些特性使得 MicroPython 非常适合创客使用来开发一些有创意的项目。
+
+# 2. MicroPython 开发资源
+
+- [MicroPython 官方网站](https://micropython.org/)
+- [在线文档](http://docs.micropython.org/en/latest/pyboard/)
+- [MicroPython 在线演示](https://micropython.org/unicorn)
+- [MicroPython 源码](https://github.com/micropython/micropython)
+- [MicroPython 官方论坛](http://forum.micropython.org/)
+- [MicroPython 中文社区](http://www.micropython.org.cn/)
+- [RT-Thread MicroPython 论坛](https://www.rt-thread.org/qa/forum.php)
 
-- 外设与常用功能都有相应的模块,降低开发难度,使开发和移植变得容易和快速。