首先得多谢ARM的活动和STM公司提供的开发板。
拿到开发板第一件事就是下载STM32 NUCLEO开发板软件开发工具用户手册(UM1727): 设计资源专区-意法半导体(ST)微控制器等资料 需要注意下,资料中STM32CubeF0软件包: 设计资源专区-意法半导体(ST)微控制器 目前有点问题,已经和ARM 宋斌确认,需等待ST确认回复。
。
从开发手册可以看到该开发板的基本特性:
STM32F初体验
Getting started:
由于在公司,开发机是Ubuntu,所以无法进行更多的后续尝试。连接开发板至Ubuntu,会发现开发板的确可以当作Mass storage,自带了两个文件:DETAILS.txt和MBED.html。节点名称为: NODE_F031K6
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
update 12/17 2015: 一直做linux kernel开发,mbed对我而言是个全新平台,因此需要学习下。如有谬误,望指正。
mbed 支持F031K6,NUCLEO-F031K6 | mbed 右侧点击“add to your mbed compile” 然后“open mbed compile”即可进入在线编译器界面。对于上文中所给出的两个link,目前还不知道原因。
后续学习计划:
分步学习Homepage - Handbook | mbed 中的各个部分,包括mbed SDK - Handbook | mbed 、mbed HDK - Handbook | mbed 、mbed Compiler - Handbook | mbed以及mbed Developer Website - Handbook | mbed 。
目前有几点疑问:
1、mbed如何封装底层,使得上层知道对应pin的功能?以上图为例,如何知道F031K6的某个引脚被定义为LED1?
2、bin文件如何下载进F031K6 的flash。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
update 12/18 2015
不得不承认,现在的单片机开发也越来越简单化了。对于昨天的疑问经过查阅资料发现烧写程序只需要将生成的BIN文件拷贝至开发板映射出的USB Storage里即可完成。User Guide中提示D2 pin是否短路来改变LED1的闪烁频率。在mbed编译环境下点击LED1变量发现其对应的pin脚为PB_3(由此可以看出这里的LED1并不是与PCB板上的LED1对应,因此想了解板子的结构还是需要了解底层对引脚的定义),对应与下图:
简单修改Demo中的程序实现LED1闪烁频率切换:
#include "mbed.h" DigitalOut myled(LED1); DigitalIn quick(PA_12); int main() { while(1) { if(!quick){ myled = 1; // LED is ON wait(0.1); // 100 ms myled = 0; // LED is OFF wait(0.1); // 100ms }else{ myled = 1; // LED is ON wait(0.2); // 200ms myled = 0; // LED is OFF wait(1.0); // 1 sec } } }
从板上资源而言,可做的事还是蛮多的,由于目前手上没有arduino 模块,暂时无法做更多的验证。后续买了模块后会继续更新。