收到sensorTile也有段时间了,论坛上大家晒开箱啊,硬件已经挺多了,所以这里就不贴了,直接关注软件开发。因为现在st的代码例程都是基于cube的了,所以先在sensorTile上跑一遍CubeMX生成代码的过程,熟悉一下sensorTile的软件开发环境。
cube主要有两个部分,一个是stm32代码生成器,cubeMX,还有对应的stm32cube库。CubeMX有独立版本,也有eclipse插件。以前只支持32bit的JDK,现在64bit也可以了。先来安装CubeMX,这里使用eclipse插件的安装方式。先去st网站搜索关键字STSW-STM32095直达,下载下来就是个zip包。在eclipse的help菜单下,选择install new software,然后选择add,location选archive,找到刚刚下载的zip文档,选上cubeMX,然后一路next,就开始安装了。安装过程是需要上网的,看起来速度并不快。
下载好后有warning,ok就可以了
cubeMX的使用:在eclipse里面,各种功能是以perspective的方式来组织的,要用cube,就要打开cube的perspective。
看到的界面和独立版的相差无几
不过MX只是一个代码生成工具,具体的代码来源是从Cube里面来的,所以还要安装一个开发包STM32CubeL4,这货可不小,248M,可以在MX界面下载,也可以自己去st网站下载。附带一个1884页的API说明(好大??!!)。下载以后就可以在help菜单下用install new lib来安装了。我现在装的是最新版,同时界面也提供了旧版的下载,可能是为了保证以前项目代码的兼容吧。看来以后用cube做项目,得牢记用的lib的版本啊。
两个装完之后,就可以新建cube项目了,注意这个项目只是自动生成代码的项目。项目可以按照mcu来选,也可以按照board来选。看了下,板子只支持nucleo,discovery和eval,并没有我们的sensorTile,所以只能按照mcu来选了。具体型号是STM32L476JGY6,所以是L4x6系列,WLCSP72的封装。可以看到,1M的flash,128K RAM,57个IO
点击OK以后,就出来了配置界面。左边是所有的外设和中间件,右边是放大的pin的图
由于我们只是要LED blink,所以吧,只需要将PG12设为输出即可,在PG12上单击,下拉菜单选择output,这就是我们唯一要做的。
如果喜欢,可以给pin来一个别名,右键单击,enter user label就好了,这里输入LED。其他其实还有时钟啊什么的,暂时并不是很熟,所以都选择了默认配置。然后按快捷键Ctrl+Shift+G,开始生成代码,首次生成会出来一个设置界面。首先要确定代码项目的名称、保存位置和编译环境。编译环境按照大家喜好的来,这里只是一个示例
其他都使用默认配置,点击输出就好了。赶紧去生成代码的目录去看看吧,打开项目就是这样。
我们需要修改main.c。main()里面比较简单, HAL、时钟和指定GPIO的初始化以及是空的while(1)。为了实现LED的blink,可以在while(1)里面,输入如下代码。这个是类似于高楼上那种一闪一闪的效果的blink,亮的时间短,灭的时间长。如果只是简单的闪烁,用GPIO_Toggle就可以了。可以看到,使用了USER label以后,LED会自动定义LED_Port和LED_Pin,方便用户使用。
然后编译,download,就可以看到效果了,怎么样,是不是很简单。不过代价也是有的,这么点东西,第一次编译时间要40秒,编译后,code=3416,这对于一个blink,还是有点大的。
最后打包上一个代码,其实都不是我写的,st写的,嘿嘿
blink.zip
(595.92 KB, 下载次数: 9)