在线时间4854 小时
UID3309825
ST金币0
蝴蝶豆17
注册时间2016-9-4
论坛元老
- 最后登录
- 2020-12-9
|
a0a.1 32b0c
本帖最后由 anywill 于 2018-1-25 16:20 编辑
首先感谢邵总的这本书将我的精力从李小璐 马苏的狗血剧情拉回正道,
本人以前玩过arduino,mbed,树莓派3b等创客平台,这类平台上手快,更适合非科班计算机人士实现简单的科技制作
arduino,mbed, micropython等编程语言都不能使用DMA等非常底层的应用,其中利弊大家体会,mbed os另当别论
1月12号收到书,手里只有NucleoF767和esp12f 没pyboard,于是就用这两个板子开始学习,
同时淘了一个pyb10,前几天刚到货, //随后结合本书补充使用心得
边看书边写,尽量不复制粘贴,写出自己的诚意. 写的很凌乱,写错的地方请指正
前言:
先分享一位群里的大牛总结的stm32使用总结
主要明白三点吧
第一,外设用前要初始化
第二,外设调用形式有三个,一个中断、一个DMA、一个裸着用
第三,外设用完可以DeInit取消初始化
学到这三点,基本上剩下的都是学C语言了
概括:
邵总的<<micropython入门指南 >>,就是micropython的数据手册,此书覆盖了主流的micropython开发平台,
涵盖了micropython的软硬件的方方面面,内容详实,图文并茂,
也包含了micropython向其他stm32 MCU上移植的指导,
内容虽多但容易理解上手,难度低,符合python的特点:简单强大
micropython 很野,和以前学的IDE很不同,开发环境和python类似,搞定之后上手比较快
python的解释器通过固件刷入stm32(更像一个操作系统),程序不怕写错,不用担心mcu被刷死
感觉MicroPython最大的缺陷就是 缺少一个背景强大的干爹//相比arduino和mbed
缺少一个能制定标准并推广应用的组织
调试很难,似乎只能用Vcom输出到PC查看参数
使用超级终端和putty等串口连接都可以进行语法检查,在文件系统用notepad++等编辑则不行
micropython的功能由板子和库共同决定
学习micropython主要就是学习使用它的库
micropython支持以下几种库:
1 python 标准库和micro标准库, //标准Python功能的子集,用户不能扩展
2 micro-specific 库 //micropython的特有功能,实现了Python功能的一个子集,并提供用户扩展(通过Python代码)
3 pyboard等开发板特别库//实现micropython的Python标准库(和machine库 有相同名称的类,但类定义不相同)
硬件驱动模块,针对不同的硬件, 不可移植//比如 pyb,库里面包含驱动内核和外设的类库
这些库使用起来不复杂,内容很多,本人还没摸熟
micrpython的小细节
GPIO 写法: PB_14 写作 B14
刷好固件后先看该固件包含的库文件,
方法就是dir(),
micrpython有一个强大的help()函数
有什么不懂就help() 和dir()
比如 dir(pyb.Pin.cpu)查看mcu针脚定义
pyb.Pin.board.Name 对应板子上给gpio的编号
pyb.Pin.cpu.Name 对应mcu给gpio的编号
python有个小坑要注意,按键检验可靠性,建议自己做去抖和释放检测
pyb也是利用OTG实现IAP和传统的stm32烧写不太一样
烧写固件也是靠OTG, Ghost 版window可能会遇到一些奇怪的问题,
我的pyb就是,3.3v连dfu后准备刷固件,可是电脑上显示的却是 STM32 bootloader
正确的应该是STM Device in DFU Mode, st DfuSe Demo根本找不到pyb,
后来找到DfuSe Demo 根目录 ,发现有driver文件夹,找到适合自己的驱动安装一遍正常
相对PC平台安装新的python外挂模块似乎变得稍困难.micropython库可以安装在mcu的flash里或者SD卡里
个人认为micropython今后的道路可能会像arduino一样,推出针对特定开发板的库,
通过在固件里添加micropython的外挂模块,适用相应的硬件,
这也势必会占用较多的flash空间,不过部分micropython硬件通过tf卡解决
因此对成本敏感的MCU开发来说使用micropython似乎难以接受
其实像esp8266那样外挂flash来存储固件也是不错的解决方法.实现更多牛逼的功能,
如果能通过某个网址安装各种lib,类似arduino,Linux一样,那简直给micropython插上了一双翅膀.
micrpython是好玩 但代码保护是个难题,我们码农也不是活雷锋!
F767运行MicroPython:若超级终端显示检测不到pyb comm Port 20 ,拔掉otg 线再插
对于带stlink的开发板(discovery,nucleo系列)解决办法就是弹出usb 设备 stlink 只保留usb pybflash
或者拔掉stlink的两个跳线帽
MicroPython跑在pyboard裸板上,本质上为您提供了一个带Python解释器的操作系统。
内置的pyb模块包含控制板上可用外设(如UART,I2C,SPI,ADC和DAC)的函数和类。
控制pyboard有4种主要方式:
1 REPL:通过USB连接到PC,电脑显示出USB虚拟串口(CDC VCP),可以使用任何串口软件连接,我使用超级终端和
putty,并获得Python
REPL提示。这样就可以立即输入和执行Python命令,就像在PC上运行Python一样。
2 远程脚本:类似电脑在CMD里面运行编辑好的.py程序,而不是像REPL一样一行一行输入代码. 可以通过发送ctrl-A将其从
REPL更改为原始REPL模式,然后以原始REPL模式,您可以向板子发送任意
Python脚本,以便立即执行。可以使用Python脚本,这使得使用此模式非常简单:您只需运行python pyboard.py
script_to_run.py,这将在pyboard上执行script_to_run.py,返回任何输出。
3 从文件系统运行:pyboard有一个小的,内置的文件系统,它是微控制器flash的一部分。如果要扩展可用的存储空间,它
也有一个SD卡插槽。当将电脑板连接到电脑时,它显示为USB闪存存储设备,您可以通过这种方式访问(安装)内部文件系统和SD卡。如果将Python脚本复制到文件系统并将其称为main.py,那么当启动时,该脚本将执行此脚本。通过这种方式,可以在不连接到PC的情况下运行脚本。
其实下载安装驱动后,连接电脑,编辑开发板上的main.py文件,保存后按RST键,开发板中的main.py就自动执行了,很不
错!推荐使用这种方法//但是没有语法检查
4 uPyCraft是一款专门为micropython设计的IDE 绿色软件,相当不错,解决了很多问题,图像化的IDE, 还支持命令行,导入库也很方便支持的开发板还不多,
有pyb1.1/ microbit/ esp32/ esp8266
最新版本是0.29 重点支持pyb和esp32,文档和例程都很多,
不过既然支持pyb, 那么往stm 32 f4移植应该不难
最后提一下乐鑫的esp8266简直是物联网的硬件神器
STM32F405x 主频 168 MHz 210DMIPS
ESP32 双核主频高达 240 MHz,计算能力高达 650 DMIPS。
以前只不过是一家默默无名的中国小公司 今天全球做物联网智能设备的公司几乎没有不知道乐鑫的
esp8266不仅超低功耗还支持RTOS,支持各种云平台,微信控制做智能家居再合适不过,
开发环境也相当多lua ,micropython,机智云,麒麟座,阿里云,NodeMCU的开发环境arduino,
原因就是整合了一个不错的mcu内核(不是arm)
如果你熟悉C,Lua,JS,Python...都可以...
基于ESP8266芯片做的模块,具有GPIO、PWM、I2C、1-Wire、ADC等功能,可以实现很多功能,除了传统的串口+物联网应用之外,也可以实现速度过M字节每秒的高速
透传(传输视频高速采集等等),也可以支持本地AP+DNS,所以潜力巨大
|
|