第十章 板卡信息实验

《DNK210 使用指南 -CanMV 版 V1.0》第十章 板卡信息实验

本章实验将介绍如何使用CanMV内置的board脚本来获取板卡信息,方便后续实验使用。通过本章的学习,读者将学习到CanMV内置board脚本的使用。

本章分为如下几个小节:

10.1 board脚本介绍

10.2 硬件设计

10.3 程序设计

10.4 运行验证

10.1 board脚本介绍

在使用CanMV的过程中,经常需要控制一些Kendryte K210的片上外设,以实现某一具体的功能,例如操作GPIO控制LED的亮灭、操作I2S控制数字功放芯片通过扬声器播放音频等,那么在初始化GPIO、I2S等外设的时候,就需要确定这些外设需要通过哪些IO引脚与外部的LED、数字功放芯片等外设通讯,通常情况下,这需要查看板卡的原理图来确定使用的IO引脚,但查看原理图的效率较低,且会在脚本文件中固定下程序中使用的IO引脚,不利于脚本程序的移植。

综合以上IO引脚使用的需求和查看原理图的不便利性,CanMV内置提供了board脚本,board脚本中提供了board_info类,board_info类中又提供了all()和get()这两个方法,通过这两个方法便可快速获取板卡上的IO分配信息。

all()方法用于获取board_info类中的所有属性和方法列表,all()方法如下所示:

board_info.all()

all()方法可以获取到board_info类中的所有属性和方法列表,列表中的前8个元素是board_info类的方法,其余的是board_info类中的属性,因为与板卡上IO分配相关的信息是保存在board_info类的属性中的,因此在调用all()方法时,可以只获取board_info类中的所有属性列表,而不获取board_info中的方法列表,具体如下所示:

from board import board_info

info = board_info.all()[8:]

get()方法用于获取board_info类中属性的值,get()方法如下所示:

board_info.get()

需要注意的是,get()方法并不能直接调用,get()方法会在获取类属性时被自动调用,例如board_info类中有一个BOOT_KEY的属性,该属性的值就是Kendryte K210 BOOT引脚对应的IO编号,要获取board_info类中的BOOT_KEY属性值,可通过以下方式获取:

from board import board_info

boot_pin = board_info.BOOT_KEY

10.2 硬件设计

10.2.1 例程功能

1. 使用board_info类中的all()方法,获取board_info类中的所有属性,并打印输出

2. 利用board_info类中的get()方法,获取板卡上KEY0按键连接的IO编号,并打印输出

10.2.2 硬件资源

本章实验内容,主要讲解CanMV内置board脚本的使用,无需关注硬件资源。

10.2.3 原理图

本章实验内容,需要通过CanMV内置的board脚本获取板卡上KEY0按键对应的IO编号,为了验证,正点原子DNK210开发板上KEY0按键的连接原理图,如下图所示:

图10.2.3.1 KEY0按键连接原理图

通过以上原理图可以看出,KEY0按键对应的IO编号为IO18。

10.3 程序设计

10.3.1 board脚本

有关board脚本的介绍,请见第10.1小节《board脚本介绍》。

10.3.2 程序流程图

图10.3.2.1 板卡信息实验流程图

10.3.3 main.py代码

main.py中的脚本代码如下所示:

from board import board_info



# 列出所有板卡信息

info = board_info.all()[8:]

print(*info, sep='\n', end='\n\n')



# 打印输出KEY0按键连接的IO

key0_pin = board_info.KEY0

print("The KEY0 button is connected to IO{:d}".format(key0_pin))

可以看到,首先通过board_info.all()方法获取一个板卡的信息列表,然后通过上一章节介绍了print()函数,将该信息列表中的每一个元素通过系统标准输出打印输出,那么便能够在CanMV IDE软件的“串行终端”窗口中进行查看。

接着是获取KEY0按键连接的IO编号,通过board_info.{key}便可以获取board_info类中key属性的值value,最后同样通过print()函数进行打印输出。

10.4 运行验证

将DNK210开发板连接CanMV IDE,并点击CanMV IDE上的“开始(运行脚本)”按钮后,可以看到“串行终端”窗口中输出了一系列信息,如下图所示:

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

可以看到,“串行终端”串口中显示打印了板卡的所有属性信息,例如LEDR、BEEP等,只需要通过board_info.{key}便可以获取board_info类中key属性的值value,这个value就是对应的IO编号,例如上图“串行终端”窗口的最后一行显示KEY0按键连接到了IO18,通过对比第10.2.3小节《原理图》中的原理图,可以验证是一致的。​

#嵌入式##程序员##AI##开发指南##开发工程师#
正点原子DNK210开发板教程 文章被收录于专栏

正点原子DNK210开发板教程:DNK210使用指南 -CanMV版 V1.0

全部评论

相关推荐

那一天的Java_Java起来:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
避坑恶心到我了大家好,今天我想跟大家聊聊我在成都千子成智能科技有限公司(以下简称千子成)的求职经历,希望能给大家一些参考。千子成的母公司是“同创主悦”,主要经营各种产品,比如菜刀、POS机、电话卡等等。听起来是不是有点像地推销售公司?没错,就是那种类型的公司。我当时刚毕业,急需一份临时工作,所以在BOSS上看到了千子成的招聘信息。他们承诺无责底薪5000元,还包住宿,这吸引了我。面试的时候,HR也说了同样的话,感觉挺靠谱的。于是,我满怀期待地等待结果。结果出来后,我通过了面试,第二天就收到了试岗通知。试岗的内容就是地推销售,公司划定一个区域,然后你就得见人就问,问店铺、问路人,一直问到他们有意向为止。如果他们有兴趣,你就得摇同事帮忙推动,促进成交。说说一天的工作安排吧。工作时间是从早上8:30到晚上18:30。早上7点有人叫你起床,收拾后去公司,然后唱歌跳舞(销售公司都这样),7:55早课(类似宣誓),8:05同事间联系销售话术,8:15分享销售技巧,8:30经理训话。9:20左右从公司下市场,公交、地铁、自行车自费。到了市场大概10点左右,开始地推工作。中午吃饭时间大约是12:00,公司附近的路边盖饭面馆店自费AA,吃饭时间大约40分钟左右。吃完饭后继续地推工作,没有所谓的固定中午午休时间。下午6点下班后返回公司,不能直接下班,需要与同事交流话术,经理讲话洗脑。正常情况下9点下班。整个上班的一天中,早上到公司就是站着的,到晚上下班前都是站着。每天步数2万步以上。公司员工没有自己的工位,百来号人挤在一个20平方米的空间里听经理洗脑。白天就在市场上奔波,公司的投入成本几乎只有租金和工资,没有中央空调。早上2小时,晚上加班2小时,纯蒸桑拿。没有任何福利,节假日也没有3倍工资之类的。偶尔会有冲的酸梅汤和西瓜什么的。公司的晋升路径也很有意思:新人—组长—领队—主管—副经理—经理。要求是业绩和团队人数,类似传销模式,把人留下来。新人不能加微信、不能吐槽公司、不能有负面情绪、不能谈恋爱、不能说累。在公司没有任何坐的地方,不能依墙而坐。早上吃早饭在公司外面的安全通道,未到上班时间还会让你吃快些不能磨蹭。总之就是想榨干你。复试的时候,带你的师傅会给你营造一个钱多事少离家近的工作氛围,吹嘘工资有多高、还能吹自己毕业于好大学。然后让你早点来公司、无偿加班、抓住你可能不会走的心思进一步压榨你。总之,大家在找工作的时候一定要擦亮眼睛,避免踩坑!———来自网友
qq乃乃好喝到咩噗茶:不要做没有专业门槛的工作
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务