火龙果评测三 MicroPython上手初体验

Posted DO_Tonight

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了火龙果评测三 MicroPython上手初体验相关的知识,希望对你有一定的参考价值。

评测三 MicroPython上手初体验

安装Thonny

  • 我安装的是官网的最新版4.0.1版本,跟文档中的界面有些许不同,不过完全看得懂文档中的配置。所以配置方法我不再阐述

  • 配置完成后界面如下

根据提示,是可以判定配置成功的,至于上方出现的两个WARNING,暂时不考虑

运行频闪灯

  • 根据文档中提示的操作,我们是可以正常让开发板上的LED闪烁的。我这里对这个程序做一个简单的介绍

MicroPython的基本知识

  • 这里我就不重复文档中的教学内容了,重点标红一下“文件操作”,这节可以仔细看看

MicroPython 硬件实验

5.1 点亮LED

5.2 闪烁LED

5.3 读取按键

5.4 自动运行

  • 已经测试完毕,确认512MB的TF卡是无法识别的,用了8GB的内存卡可以识别,32GB的也无法识别

5.5 PWM呼吸灯

  • 有关PWM的设置就是一句函数,引脚和频率不用说,直接设置,占空比要注意一下,他的占空比指的是低电平的占空比,另外他的范围是0~1000,比如说你想设置60%的占空比就直接写入 600 1000 \\frac 600 1000 1000600 = 60%即可

5.6 *定时器

  • MicroPython只提供两个定时器,TIM6和TIM7,挂载在APB1总线上,最大频率是120MHZ,按照历程来写就行,唯一要注意的是,def定义的回调函数放在定时器Timer的前面就可以,否则会报错。

  • 测试的时候遇到两个问题:

    • '''
       * @文件: timer.py
       * @作者: 百问网开发团队
       * @功能: 使用火龙果(Pitaya Lite)开发板的定时器实现LED闪烁和打印
       * @版本: 0.1
       * @日期: 2022-06-20
       * @Copyright (c) 2022 深圳百问网科技有限公司
      '''
      from machine import Pin
      from machine import Timer
      
      led = Pin('PA0', mode=Pin.OUT_PUSHPULL) 
      
      # 定义一个函数,供定时器回调使用
      def t0_callback(self):
          led(1-led())
          print(led())
      
      # 构造timer对象,参数分别为:定时器id、定时器模式、定时器周期、回调函数
      t0 = Timer(0, mode=Timer.PERIODIC, period=1000, callback=t0_callback)
      
      # 之后无需做任何操作,定时器到了设定的时间,则会调用回调函数
      while True:
          pass
      

      这是原例程代码,实验现象应该是每隔一秒钟LED灯闪烁一次,但是逻辑分析仪测得的是500ms电平变换一次。这个问题已经反馈给百问网,等待做出修改

    • '''
       * @作者: Do_Tonight
       * @日期: 2022-09-30
       * @功能: 测试定时器的单次定时功能
      '''
      import time
      from machine import Timer, Pin
      
      led = Pin('PA1', mode=Pin.OUT_PUSHPULL, value = 1)
      key = Pin('PA0', mode=Pin.IN_PULLUP)
      
      def Timer_Callback(void):
          led(0)
      
      while True:
          if key.value() == 0:
              timer = Timer(0, mode=Timer.ONE_SHOT, period=1000, callback=Timer_Callback)
              break;
      

      定时器的一次性定时,按照我代码的逻辑来说,应该是,LED灯初始是熄灭的,只要我按下按键,那么LED在1S后会点亮,并且之后一直保持常亮。然而实验效果却是,我按下按键,LED灯立马点亮,并保持常亮。这个问题已经反馈给百问网,等待做出修改

5.7 ADC

  • 正常测试

5.8 DAC

  • 按照例程正常测试,没有出现问题

5.9 UART通信

  • MicroPython固件支持UART0、UART1、UART2和UART5,其中UART0用作REPL的交互,不可以使用
  • 串口都是可以正常使用的,不过这里的串口接收采用的循环检测的方法,要注意一点:如果单片机接收到数据,必须使用一次读函数来使得uart.any()的返回值清0

5.10 软件IIC通信

  • 注意:该MicroPyhton固件没有移植硬件IIC的接口,只能使用软件IIC
  • 由于没有购买配套的模块,暂不测试

5.11 硬件SPI通信

  • 由于没有购买配套的模块,暂不测试

5.12 软件SPI通信

  • 由于没有购买配套的模块,暂不测试
    固件没有移植硬件IIC的接口,只能使用软件IIC
  • 由于没有购买配套的模块,暂不测试

5.11 硬件SPI通信

  • 由于没有购买配套的模块,暂不测试

5.12 软件SPI通信

  • 由于没有购买配套的模块,暂不测试

以上是关于火龙果评测三 MicroPython上手初体验的主要内容,如果未能解决你的问题,请参考以下文章

火龙果评测三 MicroPython上手初体验

火龙果评测文档目录

火龙果评测文档目录

火龙果评测文档目录

火龙果评测一 阅读快速上手指南

火龙果评测一 阅读快速上手指南