STM单片机烧写软件快速入门之mbed的使用
"网友分享"版块迎来第二弹,货真价实,童叟无欺的干货!!
该篇文章是基于硬件NUCLEO-L452RE完成的。开发环境使用的是ST官方提供的Arduino的开发环境,也就是在线开发环境mbed。本文简答介绍一下关于mbed的使用。
以下为整个流程的描述,更详尽的解释和详细的源代码等请点击"阅读全文"下载pdf文档查看进一步流程和下载源代码。
1.mbed的下载(链接可在"阅读全文"的文档里找到),其实使用usb连接Nucleo板子到电脑,电脑会识别出一个存储盘,打开新识别的存储盘,里面就存储有一个mbed的开发链接。
2.打开mbed的网址,就可以连接上ST的在线开发环境,先要注册一个账户,这样你写的代码就会保存到你的账户里了。注册完以后在Hardware选择自己的开发板,mbed目前支持上百个开发板,选择你的开发板然后点击右上角的complier,就可以打开mbed在线IDE了,如图所示
3.虽然是在线开发,其实mbed的界面和大多数IDE类似,只要熟悉keil等软件的都很容易操作。我们可以看一下它的目录文件结构,一个是你自己建立的工程文件夹,一个是mbed文件夹,这个mbed提供了相当数量的方法给我们使用,只要点开它就能看到这些方法的使用形式。不过唯一的缺点就是,这些方法的具体实现代码我们看不到,也不能更改和复制。
使用mbed一样能像使用Arduino那样避开硬件驱动层,mbed提供的方法也都是面向对象的,只要看得懂单词,就能够操作开发板上引出来到端口。具体操作这些端口时,它们的名称可以查看"STM32 Nucleo-64 board用户手册",里面有详细的引脚名称对照图。另外,同一引脚在mbed和Arduino中并不相同,也就是如果要把Arduino的程序移植到nucleo板子,需要重新设置引脚
4.了解了mbed的开发流程,那就开始动手吧!我移植了一个我之前写的用于Arduino的LED点阵屏的库文件,我在后面会附上源文件。程序比较简单,主函数如下:
5.首先板子启动后,通过串口打印一串字符后,进入循环,然后交替显示两个LED点阵屏。
成员函数Display_Run_Screen()用于显示动态图,可以设置方向和速度,Display_Full_Screen()用于显示静态图,支持闪烁延时。
另外说明的是,在这个库文件中,我使用了一个delay_ms()延时函数,主要是因为我选择的开发板是Nucleo-L476RG,处理器是可能和STM32L452RE的时钟有区别,mbed提供的wait系列延时函数会跑死,所以我又单独建立了一个delay_ms函数用于延时。
6.编写好代码后点击mbed的complier按钮,就可以进行编译连接了,编译完后会自动产生下载,把编译好的bin文件下载下来烧写到Nucleo板子上就可以看到效果了,如下图所示。
7.最后说一下烧写。ST官方也提供了STM单片机的烧写软件ST_LinkUtility,使用板载的ST_Link就可以把hex或者bin文件烧写到单片机里。目前ST_LinkUtility最新版本为V4.0版本,我之前使用的是V3.9版本,在使用时一致连接不上板子,后来更新到V4.0版本后就可以,这是因为STM32L452是ST新出的一款处理器,所以旧版本没有支持该处理器的烧写方案。后面会提供ST_Link Utility最新版的下载连接,也可以到官网下载。
总结:
关于STM32Nucleo-64 board和mbed的使用就先到这里了,其实mbed的用户体验效果并不算太好,尤其是对网速有要求,不过这也有一个非常明显的优点,就是任何软件环境都支持,因为是在线IDE嘛,所以不管你是换系统还是换电脑,都不必重新搭建,就能有一个完全一样的开发环境。
- 解读物联网时代下的ARM mbed 操作系统(05-03)
- IoT工程师如何为你的设计选择正确的软件架构(11-26)
- 英蓓特CooCox工具 助力嵌入式智能硬件开发(08-11)
- Arm Mbed荣获世界物联网博览会金奖(08-14)
- 基于ARM+FPGA的大屏幕显示器控制系统设计(06-30)
- 基于ARM和μC/OS-II的车载定位终端的设计(06-24)