合宙Air001开发板系列教程—01环境搭建与点灯(基于Keil-MDK的开发)

在这里插入图片描述
  近日合宙出品了一款:

TSSOP20封装、ARM®Cortex®-M0+内核,内置32K Flash+4K RAM、集成多路USART、IIC、SPI等通讯外设,516bit定时器以及112bit ADC和2路比较器的国产MCU

  10块钱一个开发板+10个芯片,性价比还是很高的,加其“独特”的包装外观,笔者立即入手尝尝鲜。

一、 简介

  本系列教程完全按照官方文档教程,只不过将操作步骤进行更具体的记录,以及遇到的问题与解决方法,如果有需要直接观看官方文档的,点击→:Air001芯片环境搭建教程
  下述教程以基于KEIL-MDK的开发方式为主,如果需要以Arduino IDE进行开发,可参考官方文档:Air001芯片环境-Arduino搭建教程

一、 环境搭建

1、下载SDK

  这里默认大家已经装好的keil MDK并完成注册激活,首先下载安装Air001芯片的SDK:Air001 SDK下载【OpenLuat Gitee】

在这里插入图片描述

解压下载的文件,然后进入PACK文件夹:
在这里插入图片描述

2、安装PACK

双击打开.pack文件安装:
在这里插入图片描述

点击NEXT完成安装
在这里插入图片描述

3、新建Keil工程

打开Keil,点击“Project”–“New μVison Project”
在这里插入图片描述

然后在选择合适的位置和名称后点击确定:
在这里插入图片描述

在弹出的窗口中选择Air001芯片,然后点击“OK”:
在这里插入图片描述

在弹出的窗口中勾选“CMSIS”中的“CORE”和“Device”的“Stratup”,然后点击“OK”:
在这里插入图片描述

4、配置Keil工程

(1)拷贝HAL库

将SDK文件夹中的Libraries目录下的AIR001xx_HAL_Driver文件夹复制在工程目录下:
在这里插入图片描述

在这里插入图片描述

(2)添加C文件引用

回到Keil软件,给工程添加添加HAL库外设源文件,按下图步骤操作,最后选择“\Libraries\AIR001xx_HAL_Driver\Src”中的

  • “air001xx_hal.c”
  • “air001xx_hal_rcc.c”
  • “air001xx_hal_rcc_ex.c”
  • “air001xx_hal_cortex.c”
  • “air001xx_hal_gpio.c”
  • “air001xx_hal_pwr.c”
  • “air001xx_hal_pwr_ex.c”
  • “air001xx_hal_flash.c”

完成添加:
在这里插入图片描述

(3)新建main.c

首先创建一个main.c文件
在这里插入图片描述

在这里插入图片描述

文件内容先空着。

(4)新建air001xx_hal_conf.h

创建一个“air001xx_hal_conf.h”文件来配置HAL库:
在这里插入图片描述

补充代码为:

#ifndef __AIR001xx_HAL_CONF_DEFAULT_H
#define __AIR001xx_HAL_CONF_DEFAULT_H

#ifdef __cplusplus
extern "C" {
#endif

#define HAL_MODULE_ENABLED
#define HAL_GPIO_MODULE_ENABLED
#define HAL_RCC_MODULE_ENABLED
#define HAL_FLASH_MODULE_ENABLED
#define HAL_PWR_MODULE_ENABLED
#define HAL_CORTEX_MODULE_ENABLED

#define HSE_VALUE            8000000U  
#define HSE_STARTUP_TIMEOUT  100U      
#define HSI_VALUE            24000000U 
#define HSI_STARTUP_TIMEOUT  5000U     
#define LSI_VALUE            32000U
#define LSE_VALUE            32768U    /*!< Value of the External Low Speed oscillator in Hz */
#define LSE_STARTUP_TIMEOUT  5000U     /*!< Time out for LSE start up, in ms */
#define  TICK_INT_PRIORITY            0x00U /*!< tick interrupt priority */


#include "air001xx_hal_rcc.h"
#include "air001xx_hal_gpio.h"
#include "air001xx_hal_flash.h"
#include "air001xx_hal_pwr.h"
#include "air001xx_hal_cortex.h"

#define assert_param(expr) ((void)0U)

#endif

上述内容也是源于官方教程中的代码内容:
在这里插入图片描述

补充完如下图,标红的语句是由于头文件还未添加相关文件路径,后续添加:
在这里插入图片描述

(5)新建air001xx_it.h

新建air001xx_it.h头文件用于实现中断函数,和上面一样,新建文件“air001xx_it.h”:
在这里插入图片描述

代码内容:

#ifndef __AIR001XX_IT_H
#define __AIR001XX_IT_H

#ifdef __cplusplus
 extern "C" {
#endif 
void NMI_Handler(void);
void HardFault_Handler(void);
void SVC_Handler(void);
void PendSV_Handler(void);
void SysTick_Handler(void);

#ifdef __cplusplus
}
#endif
#endif

在这里插入图片描述

(6)新建air001xx_it.c

同样的操作,新建“air001xx_it.c”文件:
在这里插入图片描述

#include "air001xx_it.h"
void NMI_Handler(void)
{
}

void HardFault_Handler(void)
{
  while (1)
  {
  }
}

void SVC_Handler(void)
{
}

void PendSV_Handler(void)
{
}

void SysTick_Handler(void)
{
  HAL_IncTick();
}

在这里插入图片描述

(7)添加头文件路径

接下来开始补充路径,首先点击“Options for Target”,也就是“魔棒”
在这里插入图片描述

然后选择“C/C++”–“Includes Paths”右边的扩展按钮:
在这里插入图片描述

添加下述路径,最后点击“OK”:
在这里插入图片描述

(8)添加宏定义

添加宏定义“AIR001_DEV”,然后点击“OK”
在这里插入图片描述

补充main.c的文件内容:

#include "air001xx_hal.h"

int main(void)
{
	HAL_Init();
	GPIO_InitTypeDef GPIO_LED = {
		.Pin = GPIO_PIN_0,
		.Mode = GPIO_MODE_OUTPUT_PP,
	};
	__HAL_RCC_GPIOB_CLK_ENABLE();
	HAL_GPIO_Init(GPIOB, &GPIO_LED);

	while (1)
	{
		HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0);
		HAL_Delay(500);
	}
}

(9)编译

这里就可以进行尝试编译了,编译前要注意,C编译器选的是Compiler Version5,Keil MDK 5.37以及以后版本的默认都是6版本的了,需要自己手动安装Compiler Version5(https://developer.arm.com/downloads/view/ACOMP5 [需要注册\登录]:
在这里插入图片描述

我这里编译时报了一个小问题:
在这里插入图片描述

该函数是在“air001xx_hal.h”中声明弱定义的,不知道是我操作问题还是遗漏了官方教程的步骤,我手动添加头文件后编译通过:
在这里插入图片描述

点击“Translate”,有一个结尾没添加空行的警告:
在这里插入图片描述

定位是底层文件,无法修改,这里忽略:
在这里插入图片描述

(10)Build

然后点击“Bulid”
在这里插入图片描述

在这里插入图片描述

5、烧录

(1)LINKER选择

无错误和大警告就可以开始烧录了,由于我试用的是创新工坊的PWLINK,采用DAP的方式,所以要对烧录器进行修改,大家根据自己的烧录器进行选择:
在这里插入图片描述

另外我希望程序下载后直接运行,避免手动复位,所以进行如下设置:
在这里插入图片描述

(2)连接烧录器和开发板

接线如下:
在这里插入图片描述

6、现象

烧录成功的话就可以看到指示灯开始闪烁啦:
在这里插入图片描述

接下来大家就可以愉快的开始玩这块板子了。

猜你喜欢

转载自blog.csdn.net/weixin_43351158/article/details/131709728