串口作为最基础、最常用的通信外设,是嵌入式开发入门的第一步,这也是我为什么外设第一个就先弄它的原因,方便快捷。
我详细记录如何在APM32E030R开发板上进行串口的配置与使用,并分享在实际评测过程中的体验与心得。
一、开发环境与资源准备
1.
硬件准备:
了解串口是哪两个引脚和连接。
原理图
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
三、代码
- GPIO_Config_T gpioConfig;
- USART_Config_T usartConfigStruct;
- /* Enable GPIO clock */
- RCM_EnableAHBPeriphClock(TINY_COM1_TX_GPIO_CLK);
- /* Enable COM1 clock */
- RCM_EnableAPB2PeriphClock(TINY_COM1_CLK);
- /* Connect PXx to USARTx_Tx */
- GPIO_ConfigPinAF(TINY_COM1_TX_GPIO_PORT, TINY_COM1_TX_SOURCE, TINY_COM1_TX_AF);
- /* Connect PXx to USARRX_Rx */
- GPIO_ConfigPinAF(TINY_COM1_RX_GPIO_PORT, TINY_COM1_RX_SOURCE, TINY_COM1_RX_AF);
- /* Configure USART Tx as alternate function push-pull */
- gpioConfig.mode = GPIO_MODE_AF;
- gpioConfig.pin = TINY_COM1_TX_PIN;
- gpioConfig.speed = GPIO_SPEED_50MHz;
- gpioConfig.outtype = GPIO_OUT_TYPE_PP;
- gpioConfig.pupd = GPIO_PUPD_PU;
- GPIO_Config(TINY_COM1_TX_GPIO_PORT, &gpioConfig);
- /* Configure USART Rx as input floating */
- gpioConfig.pin = TINY_COM1_RX_PIN;
- GPIO_Config(TINY_COM1_RX_GPIO_PORT, &gpioConfig);
- /* TINY_USARTs configured as follow: */
- /* BaudRate = 115200 baud */
- usartConfigStruct.baudRate = 115200;
- /* Receive and transmit enabled */
- usartConfigStruct.mode = USART_MODE_TX_RX;
- /* Hardware flow control disabled (RTS and CTS signals) */
- usartConfigStruct.hardwareFlowCtrl = USART_FLOW_CTRL_NONE;
- /* No parity */
- usartConfigStruct.parity = USART_PARITY_NONE;
- /* One Stop Bit */
- usartConfigStruct.stopBits = USART_STOP_BIT_1;
- /* Word Length = 8 Bits */
- usartConfigStruct.wordLength = USART_WORD_LEN_8B;
- /* USART_Config */
- USART_Config(TINY_COM1, &usartConfigStruct);
- /* Enable USART_Interrupt_RXBNEIE */
- USART_EnableInterrupt(TINY_COM1, USART_INT_RXBNEIE);
- NVIC_EnableIRQRequest(TINY_COM1_IRQn, 2);
- /* Enable USART */
- USART_Enable(TINY_COM1);
- /* TINY_COM1 Send data to PC, and you need to open serial assistant to observe */
- USART_Write(TINY_COM1, (uint8_t*)"21IC.com\r\n");
- USART_Write(TINY_COM1, (uint8_t*)"HELLO APM32E030\r\n");
- while (1)
- {
- }
四、输出结果
|