经过对K210的GPIO学习,我们已经大致了解了API的形式与配置思路,那么接下来,我们就来学一下On-Chip外设吧。

UART学习-配置一个简单的UART回显

IO与UART的配置

官方standalone开发手册(以下简称手册)

配置UART的IO

#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接收数据函数的返回值作为判断转发的条件,每接收到一位数据就转发一次。
最后修改:2020 年 10 月 12 日
如果觉得我的文章对你有用,请随意赞赏