打印
[活动]

【APM32F411V Tiny Board测评】开箱+UART轮询示例

[复制链接]
884|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 [鑫森淼焱垚] 于 2024-5-15 11:57 编辑

致谢
感谢极海半导体官方给我的测评机会,感谢21IC组织的活动。


开箱


晒一波 APM32F411V Tiny Board 开发板靓照。





APM32F411V Tiny Board 开发板,搭载高性能 APM32F411VE MCU,板载仿真器,预留了开放 I/O、按键、串口、USB接口等基本功能外设。主控 APM32F411VET6 是一颗工业级高适配性 MCU,它具有 Arm Cortex-M4F 内核、工作频率 120MHz、Flash高达 512KB、SRAM 128KB 、内置SMC,非常Nice。


下载资料


原理图手册


网页来源 https://geehy.com/design/hardware_detail/33#info
下载如下两个文档
APM32F411V TinyBoard使用说明书V1.0.pdf
APM32F411V_TINYBOARD_V1.0.SchDoc.pdf


软件开发工具

网页来源:https://geehy.com/design/software
下载如下几个和 APM32F411 相关的资源:
APM32F4xx_SDK_V1.4.zip
Geehy.APM32F4xx_DFP.1.0.4.pack


文档中心

网页来源:https://geehy.com/design/document
下载 APM32F411 相关的文档:
APM32F411xCxE 用户手册 V1.4.pdf
APM32F411xCxE 数据手册 V1.3.pdf
AN1108_APM32F411系列QSPI应用笔记.pdf
AN1107_APM32F411系列COMP应用笔记.pdf
AN1106_APM32F411xCxE_硬件开发指南_V1.0.pdf
下载 APM32F4xx 相关的文档:
AN1104_APM32F4xx系列软件模拟USART_V1.0.pdf
AN1101_APM32F4xx_CRC应用笔记.pdf
AN1094_APM32F4xx Flash模拟EEPROM 应用笔记.pdf
AN1092_APM32F4xx_SMC_SRAM应用笔记.pdf
AN1091_APM32F4xx_TSensor demo例程 V1.0.pdf
AN1088_APM32F4xx系列ETH移植LWIP应用笔记.pdf
AN1087_APM32F4xx_OTG应用笔记.pdf
AN1086_APM32F4xx_ISP应用笔记.pdf
AN1085_APM32F4xx_下载烧录应用笔记V1.1.pdf
AN1084_APM32F4xx_IAP应用笔记.pdf
AN1083_APM32F4xx_ADC应用笔记.pdf
AN1082_APM32F4xx_SDRAM应用笔记.pdf
AN1081_APM32F4xx_快速入门指南.pdf


环境搭建


硬件


APM32F411V Tiny Board 板载调试器,仅需在调试器这头USB Type-C接入到电脑USB即可,即可供电,又可以下载调试,还能当串口使用。


软件


  • 解压 APM32F4xx_SDK_V1.4,在 Package 目录下有 Geeph.APM32F4xx_DFP.1.0.4.pack 双击,一路使用默认选项安装;
  • 使用 Keil MDK,打开工程,配置工程,Debug 选项选择 CMSIS-DAP;


示例工程


运行第一个示例工程,这里选择 SDK_V1.4/Examples/USART/USART_Polling 工程,Keil MDK 打开并编译。


由于此SDK同时支持 APM32F407 和 APM32F411 MCU,需要手动选择工程编译目标为 APM32F411,如下图所示。





使用 -O0 优化等级编译,Flash 占用 2.87KB.



函数流程


  • LED2, LED3 初始化,然后拉高对应管脚,两个 LED 关闭;
  • USART1和USART2初始化;
  • USART1 轮询方式发送数据到 USART2,然后比较 USART2 接收缓冲区和 USART1 发送缓冲区,数据相同则点亮 LED2;
  • USART2 轮询方式发送数据到 USART1,然后比较 USART1 接收缓冲区和 USART2 发送缓冲区,数据相同则点亮 LED3;


原理图

此示例工程用到的硬件资源有 USART1, USART2 以及2个LED。原理图如下。

USART1 和 USART2 互联,PA2 <--> PA10, PA3 <--> PA9.



LED2 和 LED3 需要把控制管脚设置为低电平点亮。



运行现象


初始化结束,LED2和LED3熄灭,但是LED1常量;
第一阶段,USART1 发送数据给 USART2,校验通过,LED2 点亮;
第二阶段,USART2 发送数据给 USART1,校验通过,LED3 点亮;




GPIO寄存器勘误


点亮 LED 的代码如所示:


/*!
* [url=home.php?mod=space&uid=247401]@brief[/url]       Turns selected LED On.
*
* @param       Led: Specifies the Led to be configured.
*              This parameter can be one of following parameters:
*              [url=home.php?mod=space&uid=2817080]@ARG[/url] LED2
*              [url=home.php?mod=space&uid=2817080]@ARG[/url] LED3
*
* @retval      None
*/
void APM_TINY_LEDOn(Led_TypeDef Led)
{
    GPIO_PORT[Led]->BSCH |= GPIO_PIN[Led];
}


参考 《APM32F411xCxE 用户手册 V1.4.pdf》,12.6.7 GPIO 端口置位/复位寄存器 GPIOx_BSC ,文档如下:




低16位 Bsy 表示管脚输出高电平,高16位 Bcy 表示管脚输出低电平。但是代码中引用的是 BSCH 寄存器,这是文档和代码不匹配的疏漏。



  

使用特权

评论回复
沙发
szt1993| | 2024-5-23 17:52 | 只看该作者
UART轮询与中断哪一个更好?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

98

帖子

0

粉丝