Преглед изворни кода

Merge pull request #91 from SummerGGift/update_doc

【完善】以潘多拉开发板为例更新例程,同时修改文档以便于生成的 PDF 更加美观
朱天龙 (Armink) пре 6 година
родитељ
комит
928fde9c5b

+ 2 - 0
docs/04-Hardware_Control_Module/01-machine.md

@@ -2,6 +2,8 @@
 
 **machine** 模块包含与特定开发板上的硬件相关的特定函数。 在这个模块中的大多数功能允许实现直接和不受限制地访问和控制系统上的硬件块(如CPU,定时器,总线等)。如果使用不当,会导致故障,死机,崩溃,在极端的情况下,硬件会损坏。
 
+需要注意的是,由于不同开发板的硬件资源不同,MicroPython 移植所能控制的硬件也是不一样的。因此对于控制硬件的例程来说,在使用前需要修改相关的配置参数来适配不同的开发板,或者直接运行已经对某一开发板适配好的 MicroPython 示例程序。本文档中的例程都是基于 RT-Thread IoT Board 潘多拉开发板而讲解的。
+
 ### 函数
 
 #### 复位相关函数

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

@@ -4,14 +4,14 @@
 
 `Pin` 对象用于控制输入/输出引脚(也称为 `GPIO`)。`Pin` 对象通常与一个物理引脚相关联,他可以驱动输出电压和读取输入电压。Pin 类中有设置引脚模式(输入/输出)的方法,也有获取和设置数字逻辑(`0` 或 `1`)的方法。
 
-一个 `Pin` 对象是通过一个标识符来构造的,它明确地指定了一个特定的输入输出。标识符的形式和物理引脚的映射是特定于一次移植的。标识符可以是整数,字符串或者是一个带有端口和引脚号码的元组。在 RT-Thread MicroPython 中,引脚标识符是一个由代号和引脚号组成的元组,如 `Pin(("X1", 33), Pin.OUT_PP)` 中的` ("X1", 33)`。
+一个 `Pin` 对象是通过一个标识符来构造的,它明确地指定了一个特定的输入输出。标识符的形式和物理引脚的映射是特定于一次移植的。标识符可以是整数,字符串或者是一个带有端口和引脚号码的元组。在 RT-Thread MicroPython 中,引脚标识符是一个由代号和引脚号组成的元组,如 `Pin(("PB15", 31), Pin.OUT_PP)` 中的` ("PB15", 31)`。
 
 ### 构造函数
 
 在 RT-Thread MicroPython 中 `Pin` 对象的构造函数如下:
 
 #### **class machine.Pin**( id, mode = -1, pull = -1,value)
-- **id** :由用户自定义的引脚名和 `Pin`  设备引脚号组成,如("X1", 33),"X1" 为用户自定义的引脚名,`33` 为 `RT-Thread Pin` 设备驱动在本次移植中的引脚号。
+- **id** :由用户自定义的引脚名和 `Pin`  设备引脚号组成,如 ("PB15", 31),"PB15" 为用户自定义的引脚名,`31` 为 `RT-Thread Pin` 设备驱动在本次移植中的引脚号。
 
 - **mode** : 指定引脚模式,可以是以下几种:
     - **Pin.IN** :输入模式
@@ -55,14 +55,17 @@
 ### 示例
 
 ```
->>> 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
+from machine import Pin
+
+PIN_OUT = 31
+PIN_IN  = 58
+
+p_out = Pin(("PB15", PIN_OUT), Pin.OUT_PP)
+p_out.value(1)                 # set io high
+p_out.value(0)                 # set io low
+
+p_in = Pin(("key_0", PIN_IN), Pin.IN, Pin.PULL_UP)
+print(p_in.value() )           # get value, 0 or 1
 ```
 
   更多内容可参考 [machine.Pin](http://docs.micropython.org/en/latest/pyboard/library/machine.Pin.html)  。

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

@@ -78,10 +78,10 @@
 ### 示例
 
 #### `软件模拟 I2C `
-```
+```python
 >>> from machine import Pin, I2C
->>> clk = Pin(("clk", 43), Pin.OUT_OD)   # Select the 43 pin device as the clock
->>> sda = Pin(("sda", 44), Pin.OUT_OD)   # Select the 44 pin device as the data line
+>>> clk = Pin(("clk", 29), Pin.OUT_OD)   # Select the 29 pin device as the clock
+>>> sda = Pin(("sda", 30), Pin.OUT_OD)   # Select the 30 pin device as the data line
 >>> i2c = I2C(-1, clk, sda, freq=100000) # create I2C peripheral at frequency of 100kHz
 >>> i2c.scan()                        # scan for slaves, returning a list of 7-bit addresses
 [81]                                  # Decimal representation
@@ -100,11 +100,12 @@ b'\x12'                               # starting at memory-address 8 in the slav
 需要先开启 `I2C` 设备驱动,查找设备可以在 `msh` 中输入`list_device` 命令。  
 在构造函数的第一个参数传入 `0`,系统就会搜索名为 `i2c0` 的设备,找到之后使用这个设备来构建 `I2C` 对象:
 
-```
+```python
 >>> from machine import Pin, I2C
->>> i2c = I2C(0)           # create I2C peripheral at frequency of 100kHz
+>>> i2c = I2C(0)                      # create I2C peripheral at frequency of 100kHz
 >>> i2c.scan()                        # scan for slaves, returning a list of 7-bit addresses
 [81]                                  # Decimal representation
 ```
 
   更多内容可参考 [machine.I2C](http://docs.micropython.org/en/latest/pyboard/library/machine.I2C.html) 。
+

+ 3 - 3
docs/04-Hardware_Control_Module/04-machine-SPI.md

@@ -65,9 +65,9 @@
 #### `软件模拟 SPI `
 ```
 >>> from machine import Pin, SPI
->>> clk = Pin(("clk", 43), Pin.OUT_PP)
->>> mosi = Pin(("mosi", 44), Pin.OUT_PP)
->>> miso = Pin(("miso", 45), Pin.IN)
+>>> clk = Pin(("clk", 26), Pin.OUT_PP)
+>>> mosi = Pin(("mosi", 27), Pin.OUT_PP)
+>>> miso = Pin(("miso", 28), Pin.IN)
 >>> spi = SPI(-1, 500000, polarity = 0, phase = 0, bits = 8, firstbit = 0, sck = clk, mosi = mosi, miso = miso)
 >>> print(spi)
 SoftSPI(baudrate=500000, polarity=0, phase=0, sck=clk, mosi=mosi, miso=miso)

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

@@ -48,8 +48,8 @@
 
 ```python
 from machine import UART
-uart = UART(1, 9600)                         # init with given baudrate
-uart.init(9600, bits=8, parity=None, stop=1) # init with given parameters
+uart = UART(1, 115200)                         # init with given baudrate
+uart.init(115200, bits=8, parity=None, stop=1) # init with given parameters
 uart.read(10)       # read 10 characters, returns a bytes object
 uart.read()         # read all available characters
 uart.readline()     # read a line

+ 2 - 2
docs/04-Hardware_Control_Module/08-machine-PWM.md

@@ -45,7 +45,7 @@
 
 ``` python
 >>> from machine import PWM     # 从 machine 导入 PWM 类
->>> pwm = PWM(1, 4, 1000, 100)  # 创建 PWM 对象,当前使用编号为 1 的 PWM 设备的 4 通道,初始化的频率为 1000Hz,占空比数值为 100(占空比为 100/255 = 39.22%)
+>>> pwm = PWM(3, 3, 1000, 100)  # 创建 PWM 对象,当前使用编号为 1 的 PWM 设备的 4 通道,初始化的频率为 1000Hz,占空比数值为 100(占空比为 100/255 = 39.22%)
 >>> pwm.freq(2000)              # 设置 PWM 对象频率
 >>> pwm.freq()                  # 获取 PWM 对象频率
 2000
@@ -53,5 +53,5 @@
 >>> pwm.duty()                  # 获取 PWM 对象占空比数值
 200
 >>> pwm.deinit()                # 关闭 PWM 对象
->>> pwm.init(4, 1000, 100)      # 开启并重新配置 PWM 对象
+>>> pwm.init(3, 1000, 100)      # 开启并重新配置 PWM 对象
 ```

+ 5 - 5
docs/04-Hardware_Control_Module/09-machine-ADC.md

@@ -35,10 +35,10 @@
 ### 示例
 
 ``` python
->>> from machine import ADC     # 从 machine 导入 ADC 类
->>> adc = ADC(2, 5)             # 创建 ADC 对象,当前使用编号为 2 的 ADC 设备的 5 通道
->>> adc.read()                  # 获取 ADC 对象采样值
+>>> from machine import ADC      # 从 machine 导入 ADC 类
+>>> adc = ADC(1, 13)             # 创建 ADC 对象,当前使用编号为 1 的 ADC 设备的 13 通道
+>>> adc.read()                   # 获取 ADC 对象采样值
 4095
->>> adc.deinit()                # 关闭 ADC 对象
->>> adc.init(5)                 # 开启并重新配置 ADC 对象
+>>> adc.deinit()                 # 关闭 ADC 对象
+>>> adc.init(13)                 # 开启并重新配置 ADC 对象
 ```

+ 2 - 2
docs/04-Hardware_Control_Module/11-machine-Timer.md

@@ -38,7 +38,7 @@ def callback_test(device):         # 回调函数有且只有一个入参,为
 该函数使用方式如下示例所示:
 
 ```python
-timer.init(wdt.PERIOD,5000,callback_test)   # 设置定时器模式为周期性执行,超时时间为 5 秒, 超时函数为 callback_test
+timer.init(wdt.PERIOD, 5000, callback_test)   # 设置定时器模式为周期性执行,超时时间为 5 秒, 超时函数为 callback_test
 ```
 #### **Timer.deinit**()
 
@@ -56,7 +56,7 @@ timer.init(wdt.PERIOD,5000,callback_test)   # 设置定时器模式为周期性
 
 ```python
 >>> from machine import Timer                       # 从 machine 导入 Timer 类
->>> timer = Timer(11)                               # 创建 Timer 对象,当前设备编号为 11
+>>> timer = Timer(15)                               # 创建 Timer 对象,当前设备编号为 11
 >>>                                                 # 进入粘贴模式
 paste mode; Ctrl-C to cancel, Ctrl-D to finish
 === def callback_test(device):                      # 定义超时回调函数 

+ 1 - 1
docs/05-System_Module/01-uos.md

@@ -1,4 +1,4 @@
-## **uos** – 基本的"操作系统"服务
+## **uos** – 基本的操作系统服务
 
 `uos` 模块包含了对文件系统的访问操作,是对应 CPython 模块的一个子集。
 

+ 1 - 1
docs/05-System_Module/05-_thread.md

@@ -1,4 +1,4 @@
-## **_thread** – 多线程支持
+## _thread – 多线程支持
 
 `_thread` 模块提供了用于处理多线程的基本方法——多个控制线程共享它们的全局数据空间。为了实现同步,提供了简单的锁(也称为互斥锁或二进制信号量)。