大家好,本人因项目需求使用了pyboard进行了一些开发,遇到一些问题,在这里总结一下,希望可以帮助到大家,由于涉及到一些我的个人理解,如果有问题和建议,可以在下面进行纠正和补充。
关于MicroPython的效率
pyboard的固件主要包含了MicroPython的环境,可以区别于C语言的编程,实现python编程和交互。这种模式就非常适合于在线控制和记录。但是MicroPyhon的存在使得MCU执行效率远低于C语言,下面举出实例:
我尝试使用GPIO的翻转电平实现pyboard对SK6812RGBW(WS2812) LED阵列进行控制,从led的手册可以了解一个码元周期为1.2us,再进行高低电平区分的话,MCU的翻转电平时间不能超过300us,这对于理论GPIO最高能达到84MHz的stm32f405来数还是不困难的,然而有意思的是当我用python仅进行高低电平翻转并用示波器检测时,翻转速度仅有77KHZ, 即使使用MicroPython中stm库对寄存器直接控制,测试代码如下:
from pyb import Pin,freq
import stm
freq()
led = Pin('Y9',Pin.OUT_PP)
while 1: