Skip to content

Commit 1c5fc9f

Browse files
authored
Merge pull request #10 from RT-Thread-packages-by-SummerGift/update_mpy_example
【更新】micropython 示例程序
2 parents c1b30ec + b35092a commit 1c5fc9f

File tree

22 files changed

+5370
-852
lines changed

22 files changed

+5370
-852
lines changed

examples/31_micropython/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ int main(void)
4747
else
4848
{
4949
/* 创建文件系统 */
50-
dfs_mkfs(FS_PARTITION_NAME, "elm");
50+
dfs_mkfs("elm", FS_PARTITION_NAME);
5151
/* 重新挂载文件系统 */
5252
if (dfs_mount(FS_PARTITION_NAME, "/", "elm", 0, 0) == 0)
5353
{

examples/31_micropython/applications/main.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ int main(void)
4141
else
4242
{
4343
/* 创建文件系统 */
44-
dfs_mkfs(FS_PARTITION_NAME, "elm");
44+
dfs_mkfs("elm", FS_PARTITION_NAME);
4545
/* 重新挂载文件系统 */
4646
if (dfs_mount(FS_PARTITION_NAME, "/", "elm", 0, 0) == 0)
4747
{
@@ -61,11 +61,11 @@ int main(void)
6161

6262
/* 等待系统初始化完毕 */
6363
rt_thread_mdelay(100);
64-
65-
/* 打开 MicroPython 命令交互界面 */
66-
extern void mpy_main(const char *filename);
67-
mpy_main(NULL);
68-
69-
// LOG_D("You can enter repl mode by typing python commands.");
70-
rt_hw_cpu_reset();
64+
65+
while(1)
66+
{
67+
/* 打开 MicroPython 命令交互界面 */
68+
extern void mpy_main(const char *filename);
69+
mpy_main(NULL);
70+
}
7171
}

examples/31_micropython/packages/micropython-v1.10.1/docs/04-Hardware_Control_Module/02-machine-Pin.md

Lines changed: 41 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,23 @@
3838
#### **Pin.name**()
3939
返回引脚对象在构造时用户自定义的引脚名。
4040

41+
#### **Pin.irq**(handler=None, trigger=(Pin.IRQ_RISING))
42+
43+
配置在引脚的触发源处于活动状态时调用的中断处理程序。如果引脚模式是, `Pin.IN` 则触发源是引脚上的外部值。 如果引脚模式是, `Pin.OUT` 则触发源是引脚的输出缓冲器。 否则,如果引脚模式是, `Pin.OPEN_DRAIN` 那么触发源是状态'0'的输出缓冲器和状态'1'的外部引脚值。
44+
45+
参数:
46+
47+
- `handler` 是一个可选的函数,在中断触发时调用
48+
- `trigger` 配置可以触发中断的事件。可能的值是:
49+
- `Pin.IRQ_FALLING` 下降沿中断
50+
- `Pin.IRQ_RISING` 上升沿中断
51+
- `Pin.IRQ_RISING_FALLING` 上升沿或下降沿中断
52+
- `Pin.IRQ_LOW_LEVEL` 低电平中断
53+
- `Pin.IRQ_HIGH_LEVEL` 高电平中断
54+
4155
### 常量
4256

43-
下面的常量用来配置 `Pin` 对象。
57+
下面的常量用来配置 `Pin` 对象。
4458

4559
#### 选择引脚模式:
4660
##### **Pin.IN**
@@ -53,7 +67,16 @@
5367
##### **None**
5468
使用值 `None` 代表不进行上下拉。
5569

56-
### 示例
70+
#### 选择中断触发模式:
71+
##### **Pin.IRQ_FALLING**
72+
##### **Pin.IRQ_RISING**
73+
##### **Pin.IRQ_RISING_FALLING**
74+
##### **Pin.IRQ_LOW_LEVEL**
75+
##### **Pin.IRQ_HIGH_LEVEL**
76+
77+
### 示例一
78+
79+
控制引脚输出高低电平信号,并读取按键引脚电平信号。
5780

5881
```
5982
from machine import Pin
@@ -69,4 +92,19 @@ p_in = Pin(("key_0", PIN_IN), Pin.IN, Pin.PULL_UP)
6992
print(p_in.value() ) # get value, 0 or 1
7093
```
7194

72-
更多内容可参考 [machine.Pin](http://docs.micropython.org/en/latest/pyboard/library/machine.Pin.html)
95+
### 示例二
96+
97+
上升沿信号触发引脚中断后执行中断处理函数。
98+
99+
```
100+
from machine import Pin
101+
102+
PIN_KEY0 = 58 # PD10
103+
key_0 = Pin(("key_0", PIN_KEY0), Pin.IN, Pin.PULL_UP)
104+
105+
def func(v):
106+
print("Hello rt-thread!")
107+
108+
key_0.irq(trigger=Pin.IRQ_RISING, handler=func)
109+
```
110+
更多内容可参考 [machine.Pin](http://docs.micropython.org/en/latest/pyboard/library/machine.Pin.html)

examples/31_micropython/packages/micropython-v1.10.1/docs/04-Hardware_Control_Module/06-machine-LCD.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@ WHITE BLACK BLUE BRED GRED GBLUE RED MAGENTA GREEN CYAN YELLOW BROWN BRRED GRAY
4949

5050
在 LCD 上画一个圆形,圆心的位置为(x1, y1),半径长度为 r。
5151

52+
#### **LCD.show_bmp**( x, y, pathname)
53+
54+
在 LCD 指定位置上显示 32-bit bmp 格式的图片信息,注意显示 bmp 图片时,(x, y) 坐标是图片的左下角。
55+
5256
### 示例
5357

5458
```python
@@ -68,4 +72,5 @@ lcd.line(0, 50, 239, 50) # 以起点(0,50),终点(239,50)画一
6872
lcd.line(0, 50, 239, 50) # 以起点(0,50),终点(239,50)画一条线
6973
lcd.rectangle(100, 100, 200, 200) # 以左上角为(100,100),右下角(200,200)画矩形
7074
lcd.circle(150, 150, 80) # 以圆心位置(150,150),半径为 80 画圆
75+
lcd.show_bmp(180, 50, "sun.bmp") # 以位置(180,50)为图片左下角坐标显示文件系统中的 bmp 图片 "sun.bmp"
7176
```

examples/31_micropython/packages/micropython-v1.10.1/docs/04-Hardware_Control_Module/08-machine-PWM.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
在给定的总线上构建一个 `PWM` 对象,参数介绍如下:
1818

19-
- **id**:使用的 PWM 设备编号,如 `id = 1` 表示编号为 1 的 PWM 设备;
19+
- **id**:使用的 PWM 设备编号,如 `id = 1` 表示编号为 1 的 PWM 设备,或者表示使用的 PWM 设备名,如 `id = "pwm"` 表示设备名为 `pwm` 的 PWM 设备
2020
- **channel**:使用的 PWM 设备通道号,每个 PWM 设备包含多个通道,范围为 [0, 4]
2121
- **freq**:初始化频率,范围 [1, 156250]
2222
- **duty**:初始化占空比数值,范围 [0 255]

examples/31_micropython/packages/micropython-v1.10.1/docs/04-Hardware_Control_Module/09-machine-ADC.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
#### **class machine.ADC**(id, channel)
1515

16-
- **id**:使用的 ADC 设备编号,`id = 1` 表示编号为 1 的 ADC 设备;
16+
- **id**:使用的 ADC 设备编号,`id = 1` 表示编号为 1 的 ADC 设备,或者表示使用的 ADC 设备名,如 `id = "adc"` 表示设备名为 `adc` 的 ADC 设备
1717
- **channel**:使用的 ADC 设备通道号,每个 ADC 设备对应多个通道;
1818

1919
例如:`ADC(1,4)` 表示当前使用编号为 1 的 ADC 设备的 4 通道。

examples/31_micropython/packages/micropython-v1.10.1/docs/04-Hardware_Control_Module/10-machine-WDT.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@
1414

1515
在 RT-Thread MicroPython 中 `WDT` 对象的构造函数如下:
1616

17-
#### **class machine.WDT**(timeout=5)
17+
#### **class machine.WDT**(id = "wdt", timeout=5)
18+
19+
- **id**: 使用的 WDT 设备编号,`id = 1` 表示编号为 1 的 WDT 设备,或者表示使用的 WDT 设备名,如 `id = "wdt"` 表示设备名为 `wdt` 的 WDT 设备;
1820

1921
- **timeout**:设置看门狗超时时间,单位:秒(s);
2022

examples/31_micropython/packages/micropython-v1.10.1/docs/04-Hardware_Control_Module/11-machine-Timer.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
#### **class machine.Timer**(id)
1717

18-
- **id**:使用的 Timer 设备编号,`id = 1` 表示编号为 1 的 Timer 设备;
18+
- **id**:使用的 Timer 设备编号,`id = 1` 表示编号为 1 的 Timer 设备,或者表示使用的 timer 设备名,如 `id = "timer"` 表示设备名为 `timer` 的 Timer 设备
1919

2020
该函数主要用于通过设备编号创建 Timer 设备对象。
2121

examples/31_micropython/packages/micropython-v1.10.1/docs/MicroPythonPlug-in/README.md

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,39 @@ VSCode 最好用的 MicroPython 插件,为 MicroPython 开发提供了强大
1111
- 支持在设备上运行示例代码
1212
- 支持运行选中的代码片段
1313
- 支持多款 MicroPython 开发板
14+
- 支持在 windows 以及 ubuntu 操作系统下运行
1415

1516
## 准备工作
1617

17-
本插件依赖 Microsoft Python 插件,并且使用 Python 脚本,因此需要做如下准备
18+
1. 在 windows 操作系统下使用插件需要将 vscode 的默认终端修改为 powershell,如下图所示
1819

19-
1. 安装 Microsoft Python 插件
20+
![select_powershell](assets/select_powershell.gif)
2021

21-
2. 按照 Python 插件的提示在 PC 上安装 Python3 并加入到系统环境变量中
22+
如果想要使用 MicroPython 自动补全功能(如果暂时不需要自动补全功能,可以跳过后续步骤),还需要进行如下操作:
23+
24+
2. 安装 Python 插件
25+
26+
3. 按照 Python 插件的提示在 PC 上安装 Python3 并加入到系统环境变量中
2227

2328
![Python plug](assets/install_python_plug.png)
2429

2530
如果在 PC 上已经安装过上述插件和程序,可以跳过此准备步骤。
2631

32+
### ubuntu 支持
33+
34+
本插件支持在 **ubuntu 18.04** 版本下运行,为了避免在 ubuntu 系统下频繁获取串口权限,需要将当前用户加入到 `dialout` 用户组中,手动输入如下命令即可,`$USERNAME` 是系统当前用户名:
35+
36+
`sudo usermod -aG dialout $USERNAME`
37+
38+
注意:配置修改后需要 **重启一下操作系统** 使配置生效。
39+
2740
## 快速入门
2841

2942
### 创建一个 MicroPython 工程
3043

31-
![open_dir](assets/open_dir.gif)
44+
![create_blank_dir](assets/create_blank_prj.gif)
45+
46+
![create_demo_dir](assets/create_demo_prj.gif)
3247

3348
### 连接开发板
3449

@@ -80,6 +95,16 @@ VSCode 最好用的 MicroPython 插件,为 MicroPython 开发提供了强大
8095

8196
![auto_complete](assets/auto_complete.gif)
8297

98+
## 开发资源
99+
100+
- [RT-Thread MicroPython 开发用户手册](https://www.rt-thread.org/document/site/submodules/micropython/docs/)
101+
- [RT-Thread MicroPython 软件包](https://github.com/RT-Thread-packages/micropython)
102+
- [RT-Thread MicroPython 示例程序及库](https://github.com/RT-Thread/mpy-snippets)
103+
- [RT-Thread MicroPython 论坛](https://www.rt-thread.org/qa/forum.php?mod=forumdisplay&fid=2&filter=typeid&typeid=20)
104+
- [MicroPython IDE 用户指南](https://www.rt-thread.org/document/site/submodules/micropython/docs/MicroPythonPlug-in/MicroPython_IDE_User_Manual/)
105+
- [MicroPython 固件开发指南](https://www.rt-thread.org/document/site/submodules/micropython/docs/MicroPythonPlug-in/MicroPython_Firmware_Development_Guide/)
106+
- RT-Thread MicroPython 交流 QQ 群:703840633
107+
83108
## 注意事项
84109

85110
- 请选择 PowerShell 作为默认终端

examples/31_micropython/packages/micropython-v1.10.1/docs/README.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -51,17 +51,20 @@
5151
- [手机遥控车](https://www.bilibili.com/video/av15008143?from=search&seid=16285206333541196172)
5252
- [搭建 MQTT 服务器](http://www.360doc.com/content/17/1218/22/8473307_714341237.shtml)
5353

54-
## MicroPython 开发资源
54+
## RT-Thread MicroPython 开发资源
5555

56-
- [RT-Thread MicroPython 开发手册](https://www.rt-thread.org/document/site/rtthread-development-guide/micropython/docs/README/)
57-
58-
- [RT-Thread MicroPython 源码](https://github.com/RT-Thread-packages/micropython)
59-
60-
- [RT-Thread MicroPython 论坛](https://www.rt-thread.org/qa/forum.php)
56+
- [RT-Thread MicroPython 开发用户手册](https://www.rt-thread.org/document/site/submodules/micropython/docs/)
57+
- [RT-Thread MicroPython IDE 用户指南](https://www.rt-thread.org/document/site/submodules/micropython/docs/MicroPythonPlug-in/MicroPython_IDE_User_Manual/)
58+
- [RT-Thread MicroPython 固件开发指南](https://www.rt-thread.org/document/site/submodules/micropython/docs/MicroPythonPlug-in/MicroPython_Firmware_Development_Guide/)
59+
- [RT-Thread MicroPython 软件包](https://github.com/RT-Thread-packages/micropython)
60+
- [RT-Thread MicroPython 示例程序及库](https://github.com/RT-Thread/mpy-snippets)
61+
- [RT-Thread MicroPython 论坛](https://www.rt-thread.org/qa/forum.php?mod=forumdisplay&fid=2&filter=typeid&typeid=20)
62+
- RT-Thread MicroPython 交流 QQ 群:703840633
6163

64+
## MicroPython 官方资料
6265
- [MicroPython 官方网站](https://micropython.org/)
6366

64-
- [官方在线文档](http://docs.micropython.org/en/latest/pyboard/)
67+
- [MicroPython 官方在线文档](http://docs.micropython.org/en/latest/pyboard/)
6568

6669
- [MicroPython 在线演示](https://micropython.org/unicorn)
6770

@@ -70,3 +73,4 @@
7073
- [MicroPython 官方论坛](http://forum.micropython.org/)
7174

7275
- [MicroPython 中文社区](http://www.micropython.org.cn/)
76+

0 commit comments

Comments
 (0)