乐乐爱学习 · 2022年08月28日 · 北京市

【MM32F5270开发板试用】串口中断试用,希望灵动提供ETH的HAL库

一、评测简介

很荣幸这次参加MM32F5270开发板评测,这次参加的原因是想测试一下STAR-MC1架构的ETH模块,但是发现灵动mindsdk并没有提供ETH相关的HAL库,这就有点尴尬了,只能放弃掉之前的测试计划。转而完成对开发板的串口中断进行评测。

二、开发板开箱

image.png
开发板的图片如图所示,盒子上有开发板贴图,可以看到是为2022年全国大学生物联网设计竞赛提供的开发板。这款开发板是逐飞做的开发板,做智能车的小伙伴都比较熟悉了。

1. 开发板本体

image.png
开发板是这样,外设还比较多。MPU6050、光敏电阻、麦克风、电位器、以太网等等。尴尬的就是官方没有提供ETH相关的HAL库,无法使用,我去找了逐飞,逐飞他们也没有ETH相关内容提供。可能这个物联网比赛里用无线的多一点,比如8266、或者是SPI的无线网卡。

image.png
板卡结构如图,外设非常多,就是我想要的以太网没提供软件资料。这次测评我就评测板子的串口中断啦。

2. 开发板附赠

image.png
开发板带了一个SWD的调试器,还有一张防BUG的黄色卡纸,这个真的是吸睛呀,感觉很灵性,多给几张就好了。

image.png
这个SWD接口用起来不太方便,需要插USB然后杜邦线连到开发板的20P的SWD接口上。正好我手里有逐飞的SWD下载器,找个转接板就可以啦,非常方便。

QQ截图20220828214456.png

三、评测过程

1.MDK更新及PACK安装

因为STAR-MC1是一个比较新的内核,类似于Cortex-M33,所以旧版本的MDK不支持STAR-MC1的PACK安装,这里需要使用MDK-V5.37版本以上才可以安装MM32F5277E_DFP.0.0.7.pack,所以我又去下载安装了一次MDK。安装以及破X过程忽略啦。链接放在下面啦。

https://armkeil.blob.core.win...

安装完MDK后需要安装PACK,灵动将所有PACK全部打包,下载解压后直接安装即可,默认会自动适配MDK-PACK的路径。

https://www.mindmotion.com.cn...

2. MindSDK下载

MindSDK是灵动提供的SDK下载途径,这里我们需要注册下账号,然后选择MDK的SDK及开发板为plus-f5270,选择建立工程即可。

https://mindsdk.mindmotion.co...

image.png
也可以打开下面SDK API DOCUMENT看看相关的API信息,反正里面是没有ETH相关的信息,这个就比较失望了。

3. Demo测试

image.png

下载完SDK后,就可以打开hello world工程来编译下看看了。

image.png

如图所示,设置好下载器及下载完成后自动复位,然后插着Type-C接口的串口USB并编译程序。
image.png

编译完成后0错误,0警告,下载即可。

image.png

当前程序下载完后,会打印一个hello world,复位开发板后发现串口输出了hello world。
image.png

但是要注意一下,默认代码的波特率是9600,一般我们都用115200,所以没有输出的时候注意看一下是不是波特率没有设置正确。

image.png

4. 串口中断测试

还是使用之前的hello world程序。只需要打开串口中断使能。

首先我们在board.h里定义一下中断源及中断句柄

#define BOARD_DEBUG_UART_IRQn        UART1_IRQn
#define BOARD_DEBUG_UART_IRQHandler  UART1_IRQHandler

image.png

然后在串口初始化中打开串口接收使能。
image.png

48行使能的第一个参数就是串口回调函数的句柄。所以我们还需要创建一个串口中断回调函数。

image.png

这里你会发现,我在57行读了一下串口接收到的数据,下面来对比一下如果没有它会怎么样呢。

5. 演示结果

我们注释掉这里的代码,如果串口接收到数据,那么它就会进入回调函数从而打印出hello world。
image.png

大家可以看到,我发了一个1,结果串口中断打印了成百上千个hello world,这说明一直在重复执行中断中的程序。
image.png

这是怎么回事呢,因为ARM默认串口中断不会自动清除中断标志位,需要手动清除下中断标志位。可以有两种方式,一种就是使用清除中断的API,另外就是读一下接收BUFF中缓冲的数据。我这里使用的就是第二种方式,接下来我们取消掉注释试试看。
image.png

可以看到,我发送了字符1,它输出了两次hello world。已经没有刚才一直卡在中断里的情况了。
image.png

四、评测总结

灵动MM32F5270还是ARM的M核,所以SDK和M3相差不大,但是指令集里相差挺多东西的,这个是有Trust Zone的。使用起来挺方便,特别是灵动提供的MindSDK,希望灵动可以更新下ETH相关的HAL驱动,我想开发下这块开发板的ETH相关应用。

推荐阅读
关注数
6151
内容数
276
灵动MM32 MCU相关技术知识,欢迎关注~
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息