【AG32开发板体验连载】--智能蒸烤箱 AG32VF407 UART串口通信测试由AG32VF407 MCU手册可知, AG32VF407 MCU自带的UART串口通信共设置了5组,分别为UART0~ UART4,AG32自带5个UART接口,如需要更多,可以用cpld实现十几个甚至更多的UART,可以满足不同需求的应用场景。本文重点介绍AG32VF407 UART串口总线通信的实现方法。 由于UART0开发板已经用于DEBUG调试,这里我们以UART1为例。 一、 UART1配置方法我们将开发板的引脚80、81分别配置为UART1的TXD、RXD,打开example_board.ve配置文件,找到UART0_UARTRXD UART1_UARTTXD PIN_80 二、 通信示例1、初始化工作要实现UART通信,需先对UART进行初始化,主要包括时钟、引脚工作模式、串口初始化参数设置等。时钟、引脚初始化如下: SYS_EnableAPBClock(APB_MASK_UART1); GPIO_AF_ENABLE(GPIO_AF_PIN(UART,1,UARTRXD)); GPIO_AF_ENABLE(GPIO_AF_PIN(UART,1,UARTTXD)); GPIO_AF_ENABLE(UART1_UARTRXD); GPIO_AF_ENABLE(UART1_UARTTXD); 串口初始化需调用UART.c中的初始化函数: UART_Init(UARTx(1), BAUD_RATE, UART_LCR_DATABITS_8, UART_LCR_STOPBITS_1, UART_LCR_PARITY_NONE, UART_LCR_FIFO_16); 各位的含义为:端口号,这里为UART1,波特率,数据位,停止位,奇偶校验位以及FIFO数据位。 2、收发子程序UART.c中提供了收发子程序,分别为发送子程序UART_Send和接收子程序UART_Receive,具体使用方法可直接参考UART.c中的说明。 3、完整的收发程序#include"example.h" // Test UART1 voidTestUart1(void) { // Wait for existing while (UART_IsTxBusy(UART1)); constchartxbuf[]="Test UART!\n"; constcharrxbuf[256]; SYS_EnableAPBClock(APB_MASK_UART1); GPIO_AF_ENABLE(GPIO_AF_PIN(UART,1,UARTRXD)); GPIO_AF_ENABLE(GPIO_AF_PIN(UART,1,UARTTXD)); GPIO_AF_ENABLE(UART1_UARTRXD); GPIO_AF_ENABLE(UART1_UARTTXD); UART_Init(UARTx(1), BAUD_RATE, UART_LCR_DATABITS_8, UART_LCR_STOPBITS_1, UART_LCR_PARITY_NONE, UART_LCR_FIFO_16); UART_Send(UART1,txbuf,strlen(txbuf)); while(1) { } 三、运行结果 |
扫一扫,分享给好友
电子发烧友网
电子发烧友开云(中国)官方