【极海APM32F4xx Tiny】学习笔记01-模板工程创建

本项目的使用的开发板

关于芯片使用的其他笔记

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第1张图片

外部晶振时钟

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第2张图片

模板工程创建/LED工程

项目仓库
https://gitcode.net/u010261063/apm32_test_part

创建模板工程的核心要素

  1. 复制官方的标准外设库
  2. 复制启动文件
  3. 复制cmsis文件
  4. 复制相关的公共头文件如apm32f4xx_int.h 和 system_apm32f4xx.c
  5. 复制中断处理文件和main文件apm32f4xx_int.c 和main.c
  6. 后边在创建工程,分组,各个分组添加文件
  7. 配置工程,编译器,优化等级,预定义宏,下载器选择
  8. 编写LED驱动文件
  9. 编译下载测试

模板工程创建流程

0.安装apm 的mdk 的扩展包

1.创建模板工程文件夹

2.复制官方的库文件或其他必须文件

3.创建mdk工程

4.创建分组并添加文件到mdk工程

5.添加头文件

6.LED bsp代码添加

7.编译运行代码

0.安装apm 的mdk 的扩展包

双击安装 Geehy.APM32F4xx_DFP.1.0.3.pack 扩展包

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第3张图片

1.创建模板工程文件夹

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第4张图片

2.复制官方的库文件或其他必须文件

2.1bsp/src文件夹下的文件

bsp_led.c 是我自己创建的文件

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第5张图片

2.2bsp/inc文件夹下的文件

bsp_led.c 是我自己创建的文件

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第6张图片

2.2.1以上文件来自

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第7张图片

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第8张图片

2.3 cmsis文件夹下的文件

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第9张图片

2.4 start文件夹下的文件

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第10张图片

2.4.1启动文件来自

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第11张图片

2.5 std_lib/inc文件夹下的文件

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第12张图片

2.5 std_lib/src文件夹下的文件

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第13张图片

2.6 std_lib/src文件夹下的文件

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第14张图片

2.6.1apm32f4xx.h文件来源

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第15张图片

2.6.2std_lib 下的src 和inc文件来源

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第16张图片

3.创建mdk工程

3.1

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第17张图片

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第18张图片

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第19张图片

4.创建分组并添加文件到mdk工程

4.1创建分组01

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第20张图片

创建分组

std_lib

user

bsp

cmsis

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第21张图片

4.2为每个分组添加文件

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第22张图片

5.添加头文件-配置工程

5.1添加头文件路径

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第23张图片

5.2配置工程

使用AC5编译器

勾选 Use Micro LIB

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第24张图片

5.3添加预定义宏和头文件路径

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第25张图片

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第26张图片

5.4选择下载器

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第27张图片

6.LED bsp代码添加

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第28张图片

6.1 bsp_led.h

#ifndef __BSP_LED_H
#define __BSP_LED_H
#include "apm32f4xx.h"
#include "apm32f4xx_gpio.h"
#include "apm32f4xx_rcm.h"



typedef enum
{
    LED0 = 0,
    LED1 = 1,
		LED_NUM
} led_id_t;



#define LED2_PIN                         GPIO_PIN_6
#define LED2_GPIO_PORT                   GPIOE
#define LED2_GPIO_CLK                    RCM_AHB1_PERIPH_GPIOE

#define LED3_PIN                         GPIO_PIN_5
#define LED3_GPIO_PORT                   GPIOE
#define LED3_GPIO_CLK                    RCM_AHB1_PERIPH_GPIOE

/*
	led gpio初始化
*/
void led_init(led_id_t Led);
/*
	led 反转
*/
void led_toggle(led_id_t led);
/*
	led 电平设置
*/
void led_set_level(led_id_t led,uint8_t level);

#endif


6.2 bsp_led.c


 #include "bsp_led.h"
 
GPIO_T* GPIO_PORT[LED_NUM] = {LED2_GPIO_PORT, LED3_GPIO_PORT};
const uint16_t GPIO_PIN[LED_NUM] = {LED2_PIN, LED3_PIN};
const uint32_t GPIO_CLK[LED_NUM] = {LED2_GPIO_CLK, LED3_GPIO_CLK};

/*
	led gpio初始化
*/
void led_init(led_id_t Led)
{
    GPIO_Config_T  configStruct;

    /** 使能时钟 */
    RCM_EnableAHB1PeriphClock(GPIO_CLK[Led]);

    /** Configure the GPIO_LED pin */
    GPIO_ConfigStructInit(&configStruct);
    configStruct.pin = GPIO_PIN[Led];//哪一个引脚
    configStruct.mode = GPIO_MODE_OUT;//输出
    configStruct.speed = GPIO_SPEED_50MHz;//速度

    GPIO_Config(GPIO_PORT[Led], &configStruct);

}
/*
	led 反转
*/
void led_toggle(led_id_t led)
{
	GPIO_ToggleBit(GPIO_PORT[led],GPIO_PIN[led]);
}

/*
	led 电平设置
*/
void led_set_level(led_id_t led,uint8_t level)
{
	GPIO_WriteBitValue(GPIO_PORT[led],GPIO_PIN[led],level);
}


7.编译运行代码

【极海APM32F4xx Tiny】学习笔记01-模板工程创建_第29张图片

你可能感兴趣的:(APM32F4,APM32F4,极海mcu,模板工程)