今天介绍的是阿里推出的一款开发板:AliOS Things Developer Kit
这款开发板出厂默认带的是AliOS Things,官方推荐用AliOS-Things uCube来开发具体的应用,就连源码也是通过STM32CubeMX工具生成基本的IO配置和功能后,在HAL库基础上继续二次开发,个人用得不爽,不爽就换回Keil环境吧,期间遇到一个问题,顺便记录了一下。
凡使用一款开发板,先点灯,点灯是第一步,接下来才有其它的工作,点灯程序一样还是基于STM32CubeMX创建,然后在Keil MDK上来实现,先来看看板子上的第一个LED的硬件连接图。
如原理图所示,LED接在PB6这个管脚,当往该IO写入低电平时,LED点亮,反之LED灯熄灭,接下来开始打开STM32CubeMX,开始基本配置。
一、新建一个STM32L496VGTx的工程(基于STM32L496VGTx)
1.1 时钟配置
这里默认选择的是外部晶振源提供的时钟,然后默认配置最高的主频。
1.2 配置LED
由于是低电平有效,所以CPU上电默认管脚状态在这里将其拉高。
1.3 生成Keil MDK工程
1.4 编写让LED翻转的demo
int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); /* USER CODE BEGIN 2 */ /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); HAL_Delay(200); } /* USER CODE END 3 */ }
如代码所示,HAL_GPIO_TogglePin这个函数会让LED所对应的IO翻转高低电平,由于加了延时200ms,所以看到的效果就是LED快速的闪烁。
开发板使用的是USB转ST_Link,所以在此之前需要安装驱动,板子的开发资料也已经提供了,板子所有的资料包括源代码都在Github上提供,感兴趣的朋友可以去下载。
https://github.com/alibaba/AliOS-Things/wiki/Developer-Kit-Tutorial
如果不下载对应驱动的话,Keil是识别不了SW Device的,安装驱动后如下图所示:
接下来在Keil上点击下载程序
出现如下提示
原因是发现Keil没有添加对应STM32L4XXX相关的的FLASH算法,我们把算法添加进去后再次点击下载即解决问题。
二、 运行结果
能够看到LED在不断的闪烁,验证成功。