首先感谢极海半导体信任,有幸入围本次APM32F411V Tiny开发板的评测。
APM32F411V Tiny开发板,集成高性能APM32F4系列MCU,带仿真器功能。开发板预留了开放I/O、2个按键、串口、USB接口等基本功能外设。搭载了一颗APM32F411VET6 工业级高适配型MCU芯片,该芯片基于Arm® Cortex®-M4F内核、工作频率120MHz 、Flash高达512KB 。
我用的环境是KEIL 5.40 + DAL
一、软件准备
从https://geehy.com/design/software搜寻下载:
1、DAL库软件包:APM32F4xx_DAL_SDK_V1.1.1.zip
解压压缩包,内含Boards、Libraries、Middlewares、Excamples、Documnents等文件夹。
有HAL基础的开发者对DAL库会有一种很熟悉的感觉,可以无缝衔接。
2、KEIL PACK支持:Geehy.APM32F4xx_DFP.1.0.4.pack
双击安装到keil目录中。
3、数据手册、原理图及应用笔记
二、跑通点灯、key外部中断及UART
1、LED及key
将board_apm32f411_tiny.c加入工程
Boards下的board_apm32f411_tiny.c有对板载2个LED和2个按键的初始化和处理函数。
在void DAL_DeviceConfig(void)中加入
BOARD_LED_Config(LED2);
BOARD_LED_Config(LED3);
BOARD_BUTTON_Config(BUTTON_KEY1,BUTTON_MODE_EINT);
BOARD_BUTTON_Config(BUTTON_KEY2,BUTTON_MODE_EINT);
KEY中断处理apm32f4xx_int.c加入
void EINT0_IRQHandler(void)
{
DAL_GPIO_EINT_IRQHandler(GPIO_PIN_0);
}
void EINT1_IRQHandler(void)
{
DAL_GPIO_EINT_IRQHandler(GPIO_PIN_1);
}
main.c中加入
void DAL_GPIO_EINT_Callback(uint16_t GPIO_Pin)
{
if (GPIO_Pin == GPIO_PIN_0)
{
BOARD_LED_Toggle(LED2);
DAL_LOGI(tag, "EINT 0 trigger\r\n");
}
if (GPIO_Pin == GPIO_PIN_1)
{
BOARD_LED_Toggle(LED3);
DAL_LOGI(tag, "EINT 1 trigger\r\n");
}
}
实现外部中断翻转LED
2、支持UART
从例程USART\UART_TwoBoardsPolling\Config中拷贝过来apm32f4xx_usart_cfg.c和apm32f4xx_usart_cfg.h
加入工程。
DAL_DeviceConfig函数中加入
DAL_USART1_Config();
就完成了UART1的初始化,并且printf重定向也已经完成了。
apm32f4xx_dal_cfg.h中打开
#define DAL_UART_MODULE_ENABLED
还有对LOG的支持:
#define USE_LOG_COMPONENT 1U
将apm32f4xx_dal_uart.c引入工程
三、烧录运行
DEBUG信息也可以从串口输出。并且板上按下按键,LED翻转。
四、总结
1、例程中的程序是模块化的,用起来很方便,比如需要用UART,将对应的cfg文件引入工程,在DAL_DeviceConfig调用初始化函数就可以用了。
2、工程文件结构也非常容易理解,而且如何熟悉HAL库,真可以直接上手。
@Geehy极海-社区小管家极海-社区小管家