Loading... 经过对K210的GPIO学习,我们已经大致了解了API的形式与配置思路,那么接下来,我们就来学一下On-Chip外设吧。 # UART学习-配置一个简单的UART回显 ## IO与UART的配置 [官方standalone开发手册(以下简称手册)](https://s3.cn-north-1.amazonaws.com.cn/dl.kendryte.com/documents/kendryte_standalone_programming_guide_20190704110318_zh-Hans.pdf) ### 配置UART的IO ```c #define UART1_RX_PIN 24 #define UART1_TX_PIN 21 //声明两个宏定义,标记我们需要使用的IO void uart1_io_init(void) { fpioa_set_function(UART1_RX_PIN, FUNC_UART1_RX); fpioa_set_function(UART1_TX_PIN, FUNC_UART1_TX); //通过FPIOA配置UART1的RX、TX映射的IO的功能。参考手册的第7章,这里声明了一个独立的函数是为了方便在主函数里面管理与配置IO,直接把两条API放到主函数也是OK的。 } ``` ### 配置UART的基本设置 ``` uart1_io_init(); //调用前面声明的函数,配置IO位UART1的功能 uart_init(UART_DEVICE_1); //参考手册的第11章,初始化UART1设备 uart_configure(UART_DEVICE_1, 115200, UART_BITWIDTH_8BIT, UART_STOP_1, UART_PARITY_NONE); //参考手册的第11章,配置UART1的基本配置,波特率115200、数据为8位、停止位1位以及无校验位 ``` ## UART的发送与接受 ### UART的发送 可以利用实现定义好的一个字符型的变量来测试发送功能。 ``` char *hel = {"hello world!\n"}; //先定义一个字符类型指针变量,并赋值 uart_send_data(UART_DEVICE_1, hel, strlen(hel)); //参考手册的第11章,串口发送的API ``` ### UART的接收(回显) ``` char buf = 0; //定义一个字符类型的缓冲区 while(1) { while(uart_receive_data(UART_NUM, &buf, 1)) { uart_send_data(UART_NUM, &buf, 1); } } //参考手册第11章,利用uart接收数据函数的返回值作为判断转发的条件,每接收到一位数据就转发一次。 ``` Last modification:October 12, 2020 © Allow specification reprint Like 0 If you think my article is useful to you, please feel free to appreciate