[APM32E0] 【APM32E030R Micro-EVB开发板评测】+串口使用

[复制链接]
meiyaolei 发表于 2025-8-24 20:35 | 显示全部楼层 |阅读模式



串口作为最基础、最常用的通信外设,是嵌入式开发入门的第一步,这也是我为什么外设第一个就先弄它的原因,方便快捷。
我详细记录如何在APM32E030R开发板上进行串口的配置与使用,并分享在实际评测过程中的体验与心得。

一、开发环境与资源准备
1.
​​硬件准备​​:
了解串口是哪两个引脚和连接。
原理图
2503568ab0529f1551.png

2.
​​软件准备​​:
​​IDE​​:Keil MDK-Arduino(本次评测使用)
SDK​​:极海官方提供的APM32E0xx_SDK(包含库函数、示例代码和底层驱动)
串口调试助手​​XCOM或其他任意一款你喜欢的工具。

二、硬件连接
APM32E030R Micro-EVB开发板默认可能没有集成USB转串口芯片,因此我们需要外接一个USB转TTL模块。
USB转TTL模块​​的 TX引脚接开发板的 PA10(USART1_RX)
USB转TTL模块​​的 RX引脚接开发板的 PA9(USART1_TX)
USB转TTL模块​​的 GND引脚接开发板的 GND

5065968ab0697a2e01.png


三、代码
  1.     GPIO_Config_T gpioConfig;
  2.     USART_Config_T usartConfigStruct;

  3.     /* Enable GPIO clock */
  4.     RCM_EnableAHBPeriphClock(TINY_COM1_TX_GPIO_CLK);

  5.     /* Enable COM1 clock */
  6.     RCM_EnableAPB2PeriphClock(TINY_COM1_CLK);

  7.     /* Connect PXx to USARTx_Tx */
  8.     GPIO_ConfigPinAF(TINY_COM1_TX_GPIO_PORT, TINY_COM1_TX_SOURCE, TINY_COM1_TX_AF);

  9.     /* Connect PXx to USARRX_Rx */
  10.     GPIO_ConfigPinAF(TINY_COM1_RX_GPIO_PORT, TINY_COM1_RX_SOURCE, TINY_COM1_RX_AF);

  11.     /* Configure USART Tx as alternate function push-pull */
  12.     gpioConfig.mode = GPIO_MODE_AF;
  13.     gpioConfig.pin = TINY_COM1_TX_PIN;
  14.     gpioConfig.speed = GPIO_SPEED_50MHz;
  15.     gpioConfig.outtype = GPIO_OUT_TYPE_PP;
  16.     gpioConfig.pupd = GPIO_PUPD_PU;
  17.     GPIO_Config(TINY_COM1_TX_GPIO_PORT, &gpioConfig);

  18.     /* Configure USART Rx as input floating */
  19.     gpioConfig.pin  = TINY_COM1_RX_PIN;
  20.     GPIO_Config(TINY_COM1_RX_GPIO_PORT, &gpioConfig);

  21.     /* TINY_USARTs configured as follow: */
  22.     /* BaudRate = 115200 baud */
  23.     usartConfigStruct.baudRate = 115200;
  24.     /* Receive and transmit enabled */
  25.     usartConfigStruct.mode     = USART_MODE_TX_RX;
  26.     /* Hardware flow control disabled (RTS and CTS signals) */
  27.     usartConfigStruct.hardwareFlowCtrl = USART_FLOW_CTRL_NONE;
  28.     /* No parity */
  29.     usartConfigStruct.parity   = USART_PARITY_NONE;
  30.     /* One Stop Bit */
  31.     usartConfigStruct.stopBits =  USART_STOP_BIT_1;
  32.     /* Word Length = 8 Bits */
  33.     usartConfigStruct.wordLength = USART_WORD_LEN_8B;
  34.     /* USART_Config */
  35.     USART_Config(TINY_COM1, &usartConfigStruct);

  36.     /* Enable USART_Interrupt_RXBNEIE */
  37.     USART_EnableInterrupt(TINY_COM1, USART_INT_RXBNEIE);

  38.     NVIC_EnableIRQRequest(TINY_COM1_IRQn, 2);

  39.     /* Enable USART */
  40.     USART_Enable(TINY_COM1);

  41.     /* TINY_COM1 Send data to PC, and you need to open serial assistant to observe */
  42.     USART_Write(TINY_COM1, (uint8_t*)"21IC.com\r\n");
  43.                 USART_Write(TINY_COM1, (uint8_t*)"HELLO APM32E030\r\n");
  44.     while (1)
  45.     {
  46.     }
四、输出结果

9658268ab030920651.png
寂静小夜曲 发表于 2025-8-25 14:22 | 显示全部楼层
看来现在115200bps仍然是主流啊
cooldog123pp 发表于 2025-8-25 18:16 | 显示全部楼层
寂静小夜曲 发表于 2025-8-25 14:22
看来现在115200bps仍然是主流啊

为什么?是有什么特殊的含义,还是115200兼顾了稳定性合速率?
空灵回声 发表于 2025-8-26 10:16 | 显示全部楼层
不一定吧!
我们现在自己的调试串口的波特率是 500kbps或1mbps
115200bps有点慢了,而且分频后会有误差
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:工程师
简介:超越自我,为设计激发灵感和想象。

258

主题

829

帖子

6

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