搜索
bottom↓
回复: 0
打印 上一主题 下一主题

《DNK210使用指南 -CanMV版 V1.0》第九章 打印输出实验

[复制链接]

出0入234汤圆

跳转到指定楼层
1
发表于 2024-9-6 16:23:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

1)实验平台:正点原子DNK210开发板
2)购买链接:https://detail.tmall.com/item.htm?id=768499342659
3)全套实验源码+手册+视频下载地址:http://www.openedv.com/thread-347618-1-1.html
4)正点原子官方B站:https://space.bilibili.com/394620890
5)正点原子手把手教你学ESP32S3快速入门视频教程:https://www.bilibili.com/video/BV1sH4y1W7Tc
6)正点原子FPGA交流群:132780729



第九章 打印输出实验


       本章节为实验篇的第一章,将通过打印输出实验为后续实验中的交互打下基础。通过本章的学习,读者将学习到CanMV中print()函数的使用。
       本章分为如下几个小节:
       9.1 打印输出函数介绍
       9.2 硬件设计
       9.3 程序设计
       9.4 运行验证

       9.1 打印输出函数介绍
       在CanMV的使用过程中,为了方便观察脚本程序的运行情况,通常需要通过串口等方式,展示脚本程序运行过程中的数值、字符串等数据信息。
       为此,CanMV提供了print()函数,print()函数用于打印输出指定的文本流数据,print()函数如下所示:
  1. print(*objects, sep=' ', end='\n', file=sys.stdout)
复制代码
       print()函数的作用是将objects中的所有对象转换为字符串,然后以sep进行分隔并在末尾加上end后打印输出至file指定的文本流。
       若在函数调用时,没有提供sep、end、file,则print()函数将使用上面展示的默认值,其中,sep和end必须都是字符串,file必须是一个具有write(string)方法的对象。
       从上面可以看到,print()函数file参数的默认值为sys.stdout,也就是系统的标准输出,系统的标准输出中write(string)方法的实现是将文本流数据通过UARTHS进行输出,当然也可以在调用print()函数时通过file参数指定为其他对象,例如打开的文件等。
       下面列出print()函数的使用示例:
  1. >>> print('Hello, World!')
  2. Hello, World!

  3. >>> print('Hello', 'World', sep=', ', end='!\n')
  4. Hello, World!

  5. >>> f = open('/flash/log.txt', 'w')
  6. >>> print("Hello, World!", file=f)
  7. >>> f.close()
  8. >>> f = open('/flash/log.txt', 'r')
  9. >>> print(f.read())
  10. >>> f.close()
  11. Hello, World!
复制代码

       9.2 硬件设计

       9.2.1 例程功能
       1. 使用print()函数,在CanMV的“串行终端”窗口中输出“Hello, DNK210!\n”
       2. 使用print()函数,将“Hello, DNK210!\n”写入/flash/test.txt文件中

       9.2.2 硬件资源
       本章实验内容,主要讲解print()函数的使用,无需关注硬件资源。

       9.2.3 原理图
       本章实验内容,主要讲解print()函数的使用,无需关注原理图。

       9.3 程序设计

       9.3.1 print()函数
       有关print()函数的介绍,请见第9.1小节《打印输出函数介绍》。

       9.3.2 程序流程图


图9.3.2.1 打印输出实验流程图

       9.3.3 main.py代码
       main.py中的脚本代码如下所示:
  1. # 打印输出到系统标准输出
  2. print('Hello, DNK210!')

  3. # 打印输出到文件
  4. f = open('/flash/test.txt', 'w')
  5. print('Hello, DNK210!', file=f)
  6. f.close()
复制代码
       可以看到,首先通过print()函数将字符串“Hello, DNK210!”打印输出至系统标准输出,然后打开文件“/flash/test.txt”,再通过print()函数将字符串“Hello, DNK210!”打印输出至文件后关闭文件。因此在脚本运行后,应该能够通过CanMV IDE的“串行终端”窗口看到输出了“Hello, DNK210!”字符串,并且字符串“Hello, DNK210!”将会被写入文件“/flash/test.txt”中。

       9.4 运行验证
       将DNK210开发板连接CanMV IDE,并点击CanMV IDE上的“开始(运行脚本)”按钮后,可以看到“串行终端”窗口中输出了“Hello, DNK210!”的字符串,如下图所示:

图9.4.1 “串行终端”窗口打印输出

       同时,字符串“Hello, DNK210!”也被写入文件“/flash/test.txt”中,该文件可以通过以下脚本进行查看:
  1. # 打印输出到文件
  2. f = open('/flash/test.txt', 'r')
  3. print(f.read())
  4. f.close()
复制代码
       运行后,如下图所示:

图9.4.2 “/flash/test.txt”文件中的内容

阿莫论坛20周年了!感谢大家的支持与爱护!!

阿莫论坛才是最爱国的,关心国家的经济、社会的发展、担心国家被别国牵连卷入战争、知道珍惜来之不易的和平发展,知道师夷之长,关注世界的先进文化与技术,也探讨中国文化的博大精深,也懂得警惕民粹主义的祸国殃民等等等等,无不是爱国忧民的表现。(坛友:tianxian)
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-9-17 20:12

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表