1. 为什么没有连接声音传感器的情况下,可多的页面上还会有音量的变化显示?

  • 声音传感器向掌机反馈的实际是电压信号,音量越大,返回的电压越高,对应的读数也就越大
  • 传感器返回的电压范围为0~3.3V,对应的模拟读数为0~4095(就是把3.3V分成了4096份,每份对应的是0.0008V
  • 在不连接传感器的时候,空置的引脚会出现电压漂移,虽然变换不大,但仍然会被掌机读取到,所以屏幕上会显示读数跳跃
  • 这种漂移是完全随机的,所以硬件上一般用这种读数的数值当做随机数的种子

**


2. 掌机提示“糟糕,没有找到设备”:

image.png
问题原因:掌机内的IIC设备初始化失败,属于质量问题,直接连接厂家售后


3. 为什么有些程序仅限新掌机运行

image.png
这个受限于硬件底层资源:

  1. 旧掌机stm32芯片比新掌机的性能要差很多,旧掌机内存只有90几KB,新掌机有接近500KB
  2. 这部分资源也不是完全能被程序所使用,python是一款解释型语言,所以需要有解释器,解释器的运行又需要底层操作系统支持,这些都消耗了很多的底层硬件资源
  3. 屏幕上的显示由主控芯片实时计算,又消耗了原本就捉襟见肘的底层资源

    所以,能供程序本身调用的资源就很有限了

掌机内存溢出的几种情况:
程序要在掌机内运行,需要经过如下步骤:
程序发送至掌机内存—>解释器编译—>程序运行

所以一般会出现两种状况:
**

  • 上传成功后直接报错
    • 产生原因:代码行数过多,掌机内存不足,报错(多见旧掌机,boot.py文件报错)
    • 报错描述:image.png
    • 解决办法:无解(不要上传这类程序)
  • 掌机运行过程中出现内存错误:
    • 一般程序中有大量多重for循环或迭代
    • 多见花屏或死机白屏,之后掌机重启,循环
    • 解决办法:
      • 先B+Reset复位掌机
      • 优化程序后重新上传(少用for循环,控制迭代次数)