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

[复制链接]
 楼主| chejia12 发表于 2023-7-21 09:30 | 显示全部楼层 |阅读模式
本帖最后由 chejia12 于 2023-7-23 17:35 编辑

1.模板工程创建/LED工程
项目仓库  HYPERLINK "https://gitcode.net/u010261063/apm32_test_part"
创建模板工程的核心要素
复制官方的标准外设库
复制启动文件
复制cmsis文件
复制相关的公共头文件如apm32f4xx_int.h 和 system_apm32f4xx.c
复制中断处理文件和main文件apm32f4xx_int.c 和main.c
后边在创建工程,分组,各个分组添加文件
配置工程,编译器,优化等级,预定义宏,下载器选择
编写LED驱动文件
编译下载测试
模板工程创建流程
0.安装apm 的mdk 的扩展包
1.创建模板工程文件夹
2.复制官方的库文件或其他必须文件
3.创建mdk工程
4.创建分组并添加文件到mdk工程
5.添加头文件
6.LED bsp代码添加
7.编译运行代码
0.安装apm 的mdk 的扩展包
双击安装 Geehy.APM32F4xx_DFP.1.0.3.pack 扩展包
5f021fea91e67c2bb3fc180c7e58264d
1.创建模板工程文件夹
2381e722572dbeb85a8989ffab297d69
2.复制官方的库文件或其他必须文件
2.1bsp/src文件夹下的文件
bsp_led.c 是我自己创建的文件
1afc2490712b9b508fbba76add6de751
2.2bsp/inc文件夹下的文件
bsp_led.c 是我自己创建的文件
e93eff66f8095cbae35e6c0547b438a4
以上文件来自
2f5ecae1611d1ca7d9e66e636be231e5
2.3 cmsis文件夹下的文件
24f7b5b75945eed2736c8d15ba29cae5
2.4 start文件夹下的文件
dc55b09b616563829b6dfed459c7a715
2.4.1启动文件来自
edfc95f0276cdfbae220fd730b601c15
2.5 std_lib/inc文件夹下的文件
974faf1d18fb243e6d5b3ffcd73eb5f3
2.5 std_lib/src文件夹下的文件
6ef499c7673afc6f33ad9d1ee2b8a47e
2.6 std_lib/src文件夹下的文件
b10eb93353650a1801d7aa45d850ff3f
2.6.1apm32f4xx.h文件来源
ba223da1124d7370601c3439768629b5
2.6.2std_lib 下的src 和inc文件来源
d248a89ce0bfabb578a2e0f5623a7c68
3.创建mdk工程
3.1
6a3fe9924583446c88fcfee802a54eed
da39f823546c62cd9149e0fa0cc80444
4.创建分组并添加文件到mdk工程
4.1创建分组01
cddadcb47ef47edc30e8ef6f4a9e9b68
创建分组
std_lib
user
bsp
cmsis
58a879b77fb081c4cb0eb4d7ddf40496
4.2为每个分组添加文件
99d4593aaea6f075bfbb7abac6603d2d
5.添加头文件-配置工程
5.1添加头文件路径
218c76a9727770f62b661dcfa8ba8bdb
5.2配置工程
使用AC5编译器
勾选 Use Micro LIB
59e325c730c7e5b1a9753a7b7031a90d
5.3添加预定义宏和头文件路径
5f232406198a1c7c54c36937a991369e
5.4选择下载器
c52404a182b1d9ae05d7d5c3757d36cc
6.LED bsp代码添加
98b4651e47b9b598dd554fff9e21d028
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.编译运行代码
59575aa99d4b04dce605934cbf348353
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

35

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

12

主题

35

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部