【APM32F402R Micro-EVB 测评】介绍、环境搭建、工程测试
# 【APM32F402R Micro-EVB 测评】介绍、环境搭建、工程测试本文介绍了极海 APM32F402R Micro-EVB 开发板的相关信息,包括主控、开发板、资源参数、功能特点等,介绍了开发环境搭建方案,并结合官方 Demo 例程,演示了闪灯和串口通信工程测试方案和效果。
## 介绍
APM32F402R Micro-EVB 开发板是极海 APM32F402 系列高性能高性价比 MCU 的最小系统演示板和开发平台,
搭载 APM32F402RBT6 主控芯片。该芯片基于 Arm® Cortex®-M4F 内核、工作主频 120MHz、Flash 128KB。
开发板由 Geehy-LINK 和 APM32F402 最小系统板两部分组成。
开发板支持板载 Geehy-LINK 或第三方工具进行调试,并预留 GPIO、SWD、USART、Type-C 等板载资源,便于快速实现仿真和调试。
### 包装
- 采用硬盒外包装,使用醒目封口贴,提醒开发者注意安全,非常贴心;
- 开发板置于防静电袋,确保运输安全;
- 内置开发板说明书,详细介绍了板载资源和调试使用方法;
!(data/attachment/forum/202507/30/151940agq6f5zqdttdidds.jpg "package_view.jpg")
### 外观
- PCB 采用黑色沉金工艺,丝印清晰,器件布局合理,走线规范整洁;
- 开发板包括 Geehy-LINK 调试器和主控板两部分,中间使用挖孔方式隔开,可掰开使用;
- 开发板预留 GPIO 引脚,可根据需求进行焊接和扩展,便于 DIY 设计;
- Geehy-LINK 采用高性能 APM32F103CBT6 主控,确保工程调试和串口通信的流畅使用;
!(data/attachment/forum/202507/30/151953i1xvsci60s7o7jiu.jpg "board_view.jpg")
### 主控
主控型号为 APM32F402RBT6 ,基于 Arm® Cortex®-M4F 内核、工作主频 120MHz、Flash 128KB。
!(data/attachment/forum/202507/30/152007htcnvx97d9pz6dkt.jpg "mcu.jpg")
下面介绍 APM32F402xB 系列产品的系统架构、产品特性等。
#### 系统框图
!(data/attachment/forum/202507/30/152020lqnkti7q1j2hoxnz.jpg "system_block.jpg")
#### 产品特性
- 内核
- 32 位 Arm® Cortex®-M4F 内核
- 最高 120MHz 工作频率
- 存储
- Flash 容量 128KB
- SRAM 容量 32KB
- 时钟
- HSECLK:支持 4-16MHz 外部晶体/陶瓷振荡器
- LSECLK:支持 32.768kHz 晶体/陶瓷振荡器
- HSICLK:出厂校准的 8MHz RC 振荡器
- LSICLK:支持 40kHz RC 振荡器
- PLL:锁相环,支持 2-16 倍频
- 电源与电源管理
- VDD 范围:2.0-3.6V
- VDDA 范围:2.0-3.6V
- 备份域电源 VBAT 范围:1.8-3.6V
- 支持上电/掉电复位(POR/PDR)
- 支持可编程电源电压检测器(PVD)
- 低功耗模式
- 支持睡眠、停机、待机三种模式
- DMA
- 两个 DMA,DMA1 有 7 个通道,DMA2 有 5 个通道
- 调试接口
- JTAG
- SWD
- I/O
- 最多有 51 个 I/O
- 所有 I/O 都可以映射到外部中断向量
- 通信外设
- 1 个 I2C 接 口 ( 1Mbit/s ), 支 持 SMBus/PMBus
- 3 个 USART, 1 个 UART ,支 持 ISO7816、LIN 和 IrDA 等功能
- 2 个 SPI(1 个可复用 I2S),最大传输速度 18Mbps
- 2 个 CAN,通信波特率最大为 1Mbit/s
- 1 个 USB OTG-FS
- 模拟外设
- 2 个 12 位的 ADC
- 定时器
- 2 个可以提供 7 通道 PWM 输出的 16位高级定时器 TMR1/8,支持死区生成和刹车输入等功能
- 1 个 32 位通用定时器 TMR2,3 个 16
- 位通用定时器 TMR3/4/5,每个定时器
- 有 4 个独立通道可以用来输入捕获、
- 输出比较、PWM 与脉冲计数等功能
- 2 个看门狗定时器:一个独立看门狗
- IWDT 和一个窗口看门狗 WWDT
- 1 个 24 位自减型系统定时器 Sys Tick Timer
- RTC
- 支持日历功能
- 84 Bytes 备份寄存器
- CRC 计算单元
- 96 位唯一设备 ID
- 芯片封装
- QFN36/QFN48/LQFP48/LQFP64
详见数据手册。
### 开发板
APM32F402R Micro-EVB 开发板,以 APM32F402RBT6 为主控,板载 Geehy-LINK 调试器;
开发工具支持 Keil:MDK-Arm、IAR Embedded Workbench、Visual Studio Code、Eclipse;
实时系统:FreeRTOS、RTX 。
#### 性能特点
- 32 位 Arm® Cortex® -M4F 内核
- 最高工作频率:120MHz
- Flash 存储器:128KB
- SRAM 存储器:32KB
#### 板载资源
- SWD : 1
- LED:2
- KEY:1
- RESET KEY:1
- GPIO :47
- USB(Type-C): 1
- Geehy LINK(Type-C): 1
#### 原理图
!(data/attachment/forum/202507/30/152037vmmd4wg3773p3ozs.jpg "SCH_MCU.jpg")
!(data/attachment/forum/202507/30/152052zvyd5q7mqmvteymd.jpg "SCH_Pins.jpg")
#### 功能分布
!(data/attachment/forum/202507/30/152108jigiyzghh444sh14.jpg "Pins_out.jpg")
## 环境搭建
- 下载并安装 Keil ARM MDK 软件;
- 下载并安装 `Geehy.APM32F4xx_DFP.1.0.8.pack` 设备支持包;
- 下载 APM32F402R Micro-EVB 开发板官方 SDK 开发套件;
详见:APM32F402R Micro-EVB .
## 工程测试
介绍了使用板载 Geehy-Link 调试器实现板载 LED 闪烁和串口通信的工程测试流程。
### 闪灯
包括硬件连接、程序流程图、关键代码、测试效果演示。
#### 硬件连接
- 使用 Type-C 数据线连接开发板的 LINK USB 接口和电脑;
- 打开 `设备管理器`,查看对应的串口设备和 WinUSB 设备;
!(data/attachment/forum/202507/30/152123y0z5voevvfev5ozq.jpg "device_winusb.jpg")
#### 流程图
!(data/attachment/forum/202507/30/152139yj458zce3j85jewk.jpg "flowchart_blink.jpg")
#### 代码
- 打开示例工程 `APM32F402_403_SDK_V1.0.2\Examples\Board_APM32F402_Tiny\GPIO\GPIO_Toggle\Project\MDK\GPIO_Toggle.uvprojx` ;
- 打开 `...\APM32F402\Application\main.c` 文件,修改延时函数;
```c++
#include "main.h"
void Delay(uint32_t scale);
int main(void)
{
BOARD_LED_Config(LED2);
BOARD_LED_Config(LED3);
while (1)
{
Delay();
BOARD_LED_Toggle(LED2);
BOARD_LED_Toggle(LED3);
}
}
void Delay(uint32_t scale)
{
volatile uint32_t delay = 0xfffff * scale;
while(delay--);
}
```
- 保存并重编译代码,确保 0 错误, 0 警告。
!(data/attachment/forum/202507/30/152156lzkezjygp0gtillg.jpg "build_output.jpg")
#### 固件上传
- 工程编译完成后,点击魔术棒,进入调试器配置标签页,选择 `CMSIS-DAP Debugger` 作为调试器;
- 点击 `Setting` 按钮,进入 DAP 调试界面,检查是否识别到设备号;
!(data/attachment/forum/202507/30/152213nm67sp7qsqpt7v2f.jpg "debug-setting.jpg")
- 短按开发板 RESET 键,复位并运行程序,可见板载 LED 闪烁。
#### 效果
!(data/attachment/forum/202507/30/152227djyzo8mtj8jfro22.gif "blink.gif")
### 串口通信
包括硬件连接、程序流程图、关键代码、测试效果演示。
#### 硬件连接
使用 Type-C 数据线连接开发板的 LINK USB 接口和电脑;
#### 流程图
!(data/attachment/forum/202507/30/152243oivrkprrkr8ixrci.jpg "flowchart_uart.jpg")
#### 代码
- 打开示例工程 `APM32F402_403_SDK_V1.0.2\Examples\Board_APM32F402_Tiny\USART\USART_Printf\Project\MDK\USART_Printf.uvprojx` ;
- 打开 `...\APM32F402\Application\main.c` 文件,获取主函数;
> 通过 LED2 指示串口发送状态——每次发送完成后,翻转LED电平;
```c++
#include "main.h"
volatile uint32_t tick = 0;
uint8_t txBuf[] = "Hello USART1 \r\n";
int main(void)
{
uint8_t i;
USART_Config_T USART_ConfigStruct;
BOARD_LED_Config(LED2);
BOARD_LED_Config(LED3);
USART_ConfigStruct.baudRate = 115200;
USART_ConfigStruct.hardwareFlow = USART_HARDWARE_FLOW_NONE;
USART_ConfigStruct.mode = USART_MODE_TX;
USART_ConfigStruct.parity = USART_PARITY_NONE;
USART_ConfigStruct.stopBits = USART_STOP_BIT_1;
USART_ConfigStruct.wordLength = USART_WORD_LEN_8B;
BOARD_COM_Config(COM1, &USART_ConfigStruct);
SystemCoreClockUpdate();
SysTick_Config(SystemCoreClock / 1000);
while (1)
{
Delay();
for(i = 0; i < sizeof(txBuf); i++)
{
while(USART_ReadStatusFlag(USART1, USART_FLAG_TXBE) == RESET);
USART_TxData(USART1, txBuf);
}
BOARD_LED_Toggle(LED2);
}
}
void Delay(void)
{
tick = 0;
while(tick < 500);
}
```
- 保存并编译代码,上传代码至芯片;
- 短按 RESET 键,复位并运行程序,可见板载 LED 闪烁。
#### 效果
- 打开串口调试助手软件,配置串口参数,包括端口号、波特率等;
- 打开串口,接收芯片发送的字符串信息,同时板载 LED2 闪烁,间隔 500 毫秒;
!(data/attachment/forum/202507/30/152302xq6rotqgbtw0rbwq.gif "uart_printf.gif")
## 总结
本文介绍了极海 APM32F402R Micro-EVB 开发板的相关信息,包括主控、开发板、资源参数、功能特点等,介绍了开发环境搭建方案,并结合官方 Demo 例程,演示了闪灯和串口通信工程测试方案和效果,为后续的开发和测试做好铺垫,也为相关产品的开发和应用提供了参考。
页:
[1]