本帖最后由 tyq9702 于 2017-10-3 12:06 编辑
上周收到了期待已久的NUCLEO-L476RG
开发板,感谢
电子发烧友
william hill官网
!以前只用过
ti公司的一些开发板,例如DSP之类的,但总感觉做一个小巧的便携式空气检测仪太过于浪费开发板资源了,于是申请了
电子开发者william hill官网
的
STM32的开发板,想试试使用这样的小巧板子能够做出什么样的空气检测仪。没想到最后竟然获得了试用开发板的机会,非常感谢ST公司和电子发烧友william hill官网
。
上周事情也比较多,所以第一次试用报告只能拖到现在写了。
1. STM32L476产品介绍:
STM32L476产品兼备高性能处理器的优异性能和超低功耗技术的能效,具有其它超低功耗微控制器没有的功能。273分的EEMBC® CoreMark®测试成绩高于其它超低功耗处理器内核,同时217分的ULPBench测试成绩证明新微控制器的能效更高。37µA/MHz的工作电流有助于延长小电池的续航时间,扩大以环境能源为动力的零能耗产品的范围。
总之,这款单片机具有很好的低功耗性能,适用于作为各种便携式设备的核心处理器。
2. STM32L476RG开箱体验:
收到快递包裹后,我迫不及待地打开了它,想一睹STM32单片机的真容,带有包装盒的开发板图一枚:
来一张近照:
可以看到,开发板的做工还是非常好的,且它可以兼容Arduino接口,方便了不同硬件平台之间的移植。
包装盒中附有此开发板的引脚分布图,如下图所示:
这张图是后续编写程序,确定输出输入管脚的基础,只有明白自己操作的是哪个管脚,才能完成硬件的正确接线,实现自己想要的功能,因此这张图非常重要。图的背面说明了初始化硬件的连接方法:
3. STM32L476RG硬件初始化: 按照说明书上的硬件初始化提示,根据以下步骤进行开发板的硬件初始化:
1)检查开发板上的跳线帽,保证 JP1 跳线帽断开、JP5 跳线帽在 U5V 接线端,JP6 跳线帽(IDD)接通
2)将开发板通过 USB 电缆与安装了 ST-Link 的 PC 机连接,可以看到 LD2 灯闪烁,说明示例程序正在运行。
注意:如果在第二步采用移动电源供电,则不能看到效果,因为根据此开发板的技术手册和威廉希尔官方网站
图,MOS 管 T2 的开关是受到ST-Link驱动控制的,因此如果直接采用移动电源供电,则开关不能闭合,只能看到 LD1 灯不断闪烁,而程序无法执行。如果要使用外部电源供电,则需要把JP5 跳线帽调整为 E5V 接线端,并通过 Vin 或者 E5V 供电,供电时需要注意共地问题。
4. STM32L476RG开发环境搭建:这块开发板目前支持三种开发环境,都是第三方的开发环境,分别是:
1、Keil:MDK-ARM
2、IAR:EWARM
3、GCC-basedIDEs
其中Keil与IAR都是大家平常用得比较多的平台,ST公司在这两个平台上面提供了大量的例程,使用这些例程就能够很方便地进行开发。此外,ST公司有一款CubeMX的软件,可以非常方便就生成硬件层的代码,可以与上述三款的开发环境一起使用。在这里仅介绍如何在Keil下对这块开发板进行开发,其他的平台也是类似的。
5. STM32L476RG第一个小程序——点亮LED灯:
打开上述例程的文件夹,进入Projects>STM32L476RG-Nucleo>Examples>GPIO>GPIO_IOToggle
可以看到这是一个简单的小程序,打开MDK项目文件可以发现文件结构如下:
这个项目文件中对项目源代码进行了多重的include操作,需要在keil的Options for Target对话框中对相关内容进行设置,方可正确编译。主要需要设置的内容如下:
完成上述设置后,才可以正确编译并下载到开发板中。程序的核心代码如下:
此程序实现的是LED2的闪烁功能。将程序下载到开发板并运行,实现了对应的功能。运行结果如下:
6. STM32L476RG 开发板编程实验拓展——IDE的优化选择:
我们知道,keil的开发环境对于开发者来说其实不算友好,缺少错误检测和代码自动提示功能,也鲜有自动补全。为了方便后续的开发,我决定使用Jetbrain公司的Clion软件对此项目进行开发,提高开发效率。
打开Clion,选择Import Project,可以将整个项目目录导入其中,按照提示操作即可。为了开启Clion的自动提示功能,需要修改CMakeList文件,具体修改方案如下:
修改完后点击Reload Project即可,Clion 会开始自动刷新并建立链接,以开启自动提示和错误警告功能,可以方便单片机C程序的开发。
可以看到,代码的可读性有了很大的提升,且可以随时按住Ctrl+鼠标左键进行变量名和函数名的跳转,极大地提高了开发效率。