经过对K210的GPIO学习,我们已经大致了解了API的形式与配置思路,那么接下来,我们就来学一下On-Chip外设吧。
UART学习-配置一个简单的UART回显
IO与UART的配置
配置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接收数据函数的返回值作为判断转发的条件,每接收到一位数据就转发一次。