133

帖子

0

TA的资源

一粒金砂(中级)

21
 
看一下                                 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(中级)

22
 
看一下,哈哈
 
 
 

回复

113

帖子

0

TA的资源

一粒金砂(中级)

23
 
想知道怎么完成引脚的重新映射?

点评

不支持I2C、SPI、UART的引脚映射,只能使用已定义的引脚。  详情 回复 发表于 2016-7-7 22:55
 
 
 

回复

1万

帖子

24

TA的资源

版主

24
 
47857872 发表于 2016-7-7 21:03
想知道怎么完成引脚的重新映射?

不支持I2C、SPI、UART的引脚映射,只能使用已定义的引脚。

点评

SPI还是能用的说 micropython-master\stmhal\boards\STM32F4DISC 下有个staccel.py 用的就是SPI的映射 然后就把板子上的MEMS片子用起来了  详情 回复 发表于 2016-7-7 23:26
 
 
 

回复

113

帖子

0

TA的资源

一粒金砂(中级)

25
 
dcexpert 发表于 2016-7-7 22:55
不支持I2C、SPI、UART的引脚映射,只能使用已定义的引脚。

SPI还是能用的说 micropython-master\stmhal\boards\STM32F4DISC 下有个staccel.py 用的就是SPI的映射 然后就把板子上的MEMS片子用起来了

点评

I2C/SPI/UART可以用,在板子上有标识。GPIO的使用和其它语言差不多,输入输出、上拉都是可以随时改的。 我开始理解成运行时修改I2C的GPIO。在micropython中不能直接改,I2C、SPI等的GPIO都是指定好了,要修改需要  详情 回复 发表于 2016-7-8 00:10
 
 
 

回复

1万

帖子

24

TA的资源

版主

26
 
47857872 发表于 2016-7-7 23:26
SPI还是能用的说 micropython-master\stmhal\boards\STM32F4DISC 下有个staccel.py 用的就是SPI的映射 然 ...

I2C/SPI/UART可以用,在板子上有标识。GPIO的使用和其它语言差不多,输入输出、上拉都是可以随时改的。

我开始理解成运行时修改I2C的GPIO。在micropython中不能直接改,I2C、SPI等的GPIO都是指定好了,要修改需要在源码的配置文件中改,固件编译后就不能改了。

点评

嗯 明白了 谢谢 这里又有几个问题哈 望您指点一下~~ 跑了一下microPython的例程 下面这个:手上只有407的板子 所以我是改成了STAccel.py模块 跑起来 import pyb switch = pyb.Switch() leds = accel = pyb  详情 回复 发表于 2016-7-8 11:58
 
 
 

回复

113

帖子

0

TA的资源

一粒金砂(中级)

27
 
dcexpert 发表于 2016-7-8 00:10
I2C/SPI/UART可以用,在板子上有标识。GPIO的使用和其它语言差不多,输入输出、上拉都是可以随时改的。
...

嗯 明白了 谢谢 这里又有几个问题哈 望您指点一下~~
跑了一下microPython的例程 下面这个:手上只有407的板子 所以我是改成了STAccel.py模块 跑起来

import pyb

switch = pyb.Switch()
leds = [pyb.LED(i+1) for i in range(4)]
accel = pyb.Accel()

i = 0
while not switch():
    y = accel.y()
    i = (i + (1 if y > 0 else -1)) % len(leds)
    leds.toggle()
    pyb.delay(10 * max(1, 30 - abs(y)))


1. 想请教一下,非得在修改并保存main.py后,做弹出U盘 然后rst单片机的操作才能运行main.py么?没法直接在命令行操作尝试运行么?因为可能会有语法错误这类,所以不停的拔插USB 断电重启太反锁了点。。。
2. 我不怎么会Python 所以现在不咋理解microPython的运行模式
我感觉microPython像是做了一个操作系统,然后开放出来API 允许在U盘里的main.py里写自己的APP,可是运行过一次例程之后就瓜起了,因为在C语言中,如果是前后台就是一个死循环 可是运行了上面的代码后 就困惑了
首先 死循环在按键后就退出,可是问题是 串口的控制台是刚进入main.py程序的时候不能用的,等死循环退出 也就是按了按键后 控制台才有反应, 也就是说 串口控制台的任务优先级比较低?先执行main.py的,等退出后才能控制台?还是我这边板子有问题了
3. 这个玩意儿如果能用那么多库的话 是不是做网络收音机更容易了 相对于Arduino来说?貌似有Wipy的板子不晓得大家有木有玩过

点评

micropython是用flash模拟磁盘的,数据放在flash的高端部分,估计没有做写入负载均衡,所有如果写入次数太多了估计会有问题。所以调试的时候,可以在RAM中进行,比如先在其它编辑器中写程序,然后粘贴进去运行。直接  详情 回复 发表于 2016-7-8 12:26
 
 
 

回复

1万

帖子

24

TA的资源

版主

28
 
本帖最后由 dcexpert 于 2016-7-8 12:33 编辑
47857872 发表于 2016-7-8 11:58
嗯 明白了 谢谢 这里又有几个问题哈 望您指点一下~~
跑了一下microPython的例程 下面这个:手上只有407 ...

micropython是用flash模拟磁盘的,数据放在flash的高端部分,估计没有做写入负载均衡,所有如果写入次数太多了估计会有问题。所以调试的时候,可以在RAM中进行,比如先在其它编辑器中写程序,然后粘贴进去运行。直接粘贴是不行的,需要用下面的方法:
怎样在REPL下粘贴程序

如果是修改了PYBFlash中的程序,可以不用拔USB,用Ctrl-D软复位,这样比较快速简捷。

前后台的问题的确也存在,不管micropython的内部机制怎样,它还是用C语言编写,和传统程序一样。现在的机制是启动后先运行boot.py,然后运行main.py。通常系统程序放在boot.py中,而用户程序可以放在mian.py,或者在mian.py中去调用。如果启动出现问题,就通过安全模式启动(不加载任何其它程序)。
wipy是TI芯片的版本,不但价格贵,而且很久没有更新了,估计bug很多,不如试试ESP8266的版本,性价比还好,我们很快就会推一个ESP8266的micropython活动。


点评

谢谢啦 明白了点 1. 感觉可以用sublime写代码 然后Ctrl+E粘贴模式到putty 验证完了之后再更新U盘的main.py 2. 如果能在microPython里建立一个多任务机制就好了,这个玩意儿就真的可以用来做气象站啊 多点采集啊这  详情 回复 发表于 2016-7-8 12:59
 
 
 

回复

113

帖子

0

TA的资源

一粒金砂(中级)

29
 
dcexpert 发表于 2016-7-8 12:26
micropython是用flash模拟磁盘的,数据放在flash的高端部分,估计没有做写入负载均衡,所有如果写入次数 ...

谢谢啦 明白了点
1. 感觉可以用sublime写代码 然后Ctrl+E粘贴模式到putty 验证完了之后再更新U盘的main.py
2. 如果能在microPython里建立一个多任务机制就好了,这个玩意儿就真的可以用来做气象站啊 多点采集啊这类的小玩具了 回头可以给Damien邮件个试试~~
3. ESP8266的话应该是个UART转WIFI的模块吧?这种模组一般用来做物联网啥的 做开关用途吧?wifi收音机是要跑流量的 不晓得成不成呐

点评

可以用sublime,论坛有网友就是这样用的。 多任务官方已经在做了,只是还没有并入主分支。下一版说不定就有这个功能了。 ESP8266上是可以跑micropython的,不是外面的哪种AT命令方式或者透传方式,最近官方全  详情 回复 发表于 2016-7-8 15:14
 
 
 

回复

1万

帖子

24

TA的资源

版主

30
 
47857872 发表于 2016-7-8 12:59
谢谢啦 明白了点
1. 感觉可以用sublime写代码 然后Ctrl+E粘贴模式到putty 验证完了之后再更新U盘的main. ...

可以用sublime,论坛有网友就是这样用的。

多任务官方已经在做了,只是还没有并入主分支。下一版说不定就有这个功能了。

ESP8266上是可以跑micropython的,不是外面的哪种AT命令方式或者透传方式,最近官方全力搞这个,其它平台都不更新了。可以直接做热点、连接网络、做简单的服务器等。

点评

嗯 那ESP8266能支持64kbps以上的流媒体码率的话 那活动我报名参加~  详情 回复 发表于 2016-7-8 21:35
 
 
 

回复

104

帖子

0

TA的资源

一粒金砂(中级)

31
 
顶一个,过来看一下。最近太忙了,抽个时间再搞搞源码

点评

多发点帖子。  详情 回复 发表于 2016-7-8 21:13
 
 
 

回复

1万

帖子

24

TA的资源

版主

32
 
guo8113 发表于 2016-7-8 17:21
顶一个,过来看一下。最近太忙了,抽个时间再搞搞源码

多发点帖子。

 
 
 

回复

113

帖子

0

TA的资源

一粒金砂(中级)

33
 
dcexpert 发表于 2016-7-8 15:14
可以用sublime,论坛有网友就是这样用的。

多任务官方已经在做了,只是还没有并入主分支。下一版说不 ...

嗯 那ESP8266能支持64kbps以上的流媒体码率的话  那活动我报名参加~

点评

这个还没有试过,等你来测试了。  详情 回复 发表于 2016-7-8 21:50
 
 
 

回复

1万

帖子

24

TA的资源

版主

34
 
47857872 发表于 2016-7-8 21:35
嗯 那ESP8266能支持64kbps以上的流媒体码率的话  那活动我报名参加~[/quote]

[quote]那ESP8266能支持64kbps以上的流媒体码率的话


这个还没有试过,等你来测试了。

点评

偶然进去官网 看了一下 REPL模式的用法 发现还是蛮有意思的 但Ctrl+a这个RAW模式没明白有啥用。。。 请教一下@dcexpert 你是在哪里追踪项目的发展进度的呐 The MicroPython Interactive Interpreter Mode (a  详情 回复 发表于 2016-7-9 18:52
 
 
 

回复

113

帖子

0

TA的资源

一粒金砂(中级)

35
 
本帖最后由 47857872 于 2016-7-9 18:56 编辑
dcexpert 发表于 2016-7-8 21:50
这个还没有试过,等你来测试了。

偶然进去官网 看了一下 REPL模式的用法 发现还是蛮有意思的 但Ctrl+a这个RAW模式没明白有啥用。。。
请教一下@dcexpert 你是在哪里追踪项目的发展进度的呐

有用的东西我标红加粗了 大家看起来没那么累 哈~


The MicroPython Interactive Interpreter Mode (aka REPL)

This section covers some characteristics of the MicroPython Interactive Interpreter Mode. A commonly used term for this is REPL (read-eval-print-loop) which will be used to refer to this interactive prompt.

Auto-indent
When typing python statements which end in a colon (for example if, for, while) then the prompt will change to three dots (...) and the cursor will be indented by 4 spaces. When you press return, the next line will continue at the same level of indentation for regular statements or an additional level of indentation where appropriate. If you press the backspace key then it will undo one level of indentation.

If your cursor is all the way back at the beginning, pressing RETURN will then execute the code that you’ve entered. The following shows what you’d see after entering a for statement (the underscore shows where the cursor winds up):

>>> for i in range(3):
...     _
If you then enter an if statement, an additional level of indentation will be provided:

>>> for i in range(30):
...     if i > 3:
...         _
Now enter break followed by RETURN and press BACKSPACE:

>>> for i in range(30):
...     if i > 3:
...         break
...     _
Finally type print(i), press RETURN, press BACKSPACE and press RETURN again:

>>> for i in range(30):
...     if i > 3:
...         break
...     print(i)
...
0
1
2
3
>>>
Auto-indent won’t be applied if the previous two lines were all spaces. This means that you can finish entering a compound statment by pressing RETURN twice, and then a third press will finish and execute.

Auto-completion
While typing a command at the REPL, if the line typed so far corresponds to the beginning of the name of something, then pressing TAB will show possible things that could be entered. For example type m and press TAB and it should expand to machine. Enter a dot . and press TAB again. You should see something like:

>>> machine.
__name__        info            unique_id       reset
bootloader      freq            rng             idle
sleep           deepsleep       disable_irq     enable_irq
Pin
The word will be expanded as much as possible until multiple possibilities exist. For example, type machine.Pin.AF3 and press TAB and it will expand to machine.Pin.AF3_TIM. Pressing TAB a second time will show the possible expansions:

>>> machine.Pin.AF3_TIM
AF3_TIM10       AF3_TIM11       AF3_TIM8        AF3_TIM9
>>> machine.Pin.AF3_TIM
Interrupting a running program
You can interupt a running program by pressing Ctrl-C. This will raise a KeyboardInterrupt which will bring you back to the REPL, providing your program doesn’t intercept the KeyboardInterrupt exception.

For example:

>>> for i in range(1000000):
...     print(i)
...
0
1
2
3
...
6466
6467
6468
Traceback (most recent call last):
  File "", line 2, in
KeyboardInterrupt:
>>>
Paste Mode
If you want to paste some code into your terminal window, the auto-indent feature will mess things up. For example, if you had the following python code:

def foo():
    print('This is a test to show paste mode')
    print('Here is a second line')
foo()
and you try to paste this into the normal REPL, then you will see something like this:

>>> def foo():
...         print('This is a test to show paste mode')
...             print('Here is a second line')
...             foo()
...
  File "", line 3
IndentationError: unexpected indent
If you press Ctrl-E, then you will enter paste mode, which essentially turns off the auto-indent feature, and changes the prompt from >>> to ===. For example:

>>>
paste mode; Ctrl-C to cancel, Ctrl-D to finish
=== def foo():
===     print('This is a test to show paste mode')
===     print('Here is a second line')
=== foo()
===
This is a test to show paste mode
Here is a second line
>>>
Paste Mode allows blank lines to be pasted. The pasted text is compiled as if it were a file. Pressing Ctrl-D exits paste mode and initiates the compilation.

Soft Reset
A soft reset will reset the python interpreter, but tries not to reset the method by which you’re connected to the MicroPython board (USB-serial, or Wifi).

You can perform a soft reset from the REPL by pressing Ctrl-D, or from your python code by executing:

raise SystemExit

For example, if you reset your MicroPython board, and you execute a dir() command, you’d see something like this:

>>> dir()
['__name__', 'pyb']
Now create some variables and repeat the dir() command:

>>> i = 1
>>> j = 23
>>> x = 'abc'
>>> dir()
['j', 'x', '__name__', 'pyb', 'i']
>>>
Now if you enter Ctrl-D, and repeat the dir() command, you’ll see that your variables no longer exist:

PYB: sync filesystems
PYB: soft reboot
MicroPython v1.5-51-g6f70283-dirty on 2015-10-30; PYBv1.0 with STM32F405RG
Type "help()" for more information.
>>> dir()
['__name__', 'pyb']
>>>
The special variable _ (underscore)
When you use the REPL, you may perfom computations and see the results. MicroPython stores the results of the previous statment in the variable _ (underscore). So you can use the underscore to save the result in a variable. For example:

>>> 1 + 2 + 3 + 4 + 5
15
>>> x = _
>>> x
15
>>>
Raw Mode
Raw mode is not something that a person would normally use. It is intended for programmatic use. It essentially behaves like paste mode with echo turned off.

Raw mode is entered using Ctrl-A. You then send your python code, followed by a Ctrl-D. The Ctrl-D will be acknowledged by ‘OK’ and then the python code will be compiled and executed. Any output (or errors) will be sent back. Entering Ctrl-B will leave raw mode and return the the regular (aka friendly) REPL.

点评

最有用的就是Ctrl-D软复位,不用拔USB线。在就是Ctrl-E,粘贴模式下可以将一大段程序复制进去,这对于没有虚拟磁盘的ESP8266很有用。  详情 回复 发表于 2016-7-9 20:46
Ctrl-A我也没有完全搞懂,看说明是程序使用,而不是程序员用,或者说其它程序和pyboard交互用的。RAW 模式下,输入没有回显。 程序进度一是看官网的说明,特别是download那页;再就是github,同步官方源码,就可  详情 回复 发表于 2016-7-9 20:44
 
 
 

回复

662

帖子

0

TA的资源

纯净的硅(初级)

36
 
学习一下
 
 
 

回复

1万

帖子

24

TA的资源

版主

37
 
47857872 发表于 2016-7-9 18:52
偶然进去官网 看了一下 REPL模式的用法 发现还是蛮有意思的 但Ctrl+a这个RAW模式没明白有啥用。。。
请 ...

Ctrl-A我也没有完全搞懂,看说明是程序使用,而不是程序员用,或者说其它程序和pyboard交互用的。RAW 模式下,输入没有回显。

程序进度一是看官网的说明,特别是download那页;再就是github,同步官方源码,就可以及时了解有哪些变化。
 
 
 

回复

1万

帖子

24

TA的资源

版主

38
 
47857872 发表于 2016-7-9 18:52
偶然进去官网 看了一下 REPL模式的用法 发现还是蛮有意思的 但Ctrl+a这个RAW模式没明白有啥用。。。
请 ...

最有用的就是Ctrl-D软复位,不用拔USB线。在就是Ctrl-E,粘贴模式下可以将一大段程序复制进去,这对于没有虚拟磁盘的ESP8266很有用。
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

39
 
回复下看看
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

40
 
看看楼主的分享
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表