03-【K210】通用串口和高速串口

01 串口通讯协议简介

串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,大部分电子设备都支持该通讯方式, 电子工程师在调试设备时也经常使用该通讯方式输出调试信息。

在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核层和片上外设;官方SDK库则是在寄存器与用户代码之间的软件层。对于通讯协议,我们也以分层的方式来理解,最基本的是把它分为物理层和协议层。物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。协议层主要规定 通讯逻辑,统一收发双方的数据打包、解包标准。简单来说物理层规定我们用嘴巴还是用肢体来交流,协议层则规定我们用中文还是英文来交流。

02 K210的串口类型

(1)高速UART

高速 UART 为 UARTHS(UART0)

(2)通用UART

通用UART为UART1、UART2 和UART3,支持异步通信(RS232和RS485和IRDA,通信速率可达到5Mbps。UART支持CTS和RTS 信号的硬件管理以及软件流控 (XON和XOFF)。3 个接口均可被DMA访问或者CPU直接访问

03 通用UART测试例程

#include "fpioa.h"
#include "sleep.h"
#include "uart.h"
#include <string.h>


// 硬件IO口,与原理图对应
#define PIN_UART_USB_RX       (4)
#define PIN_UART_USB_TX       (5)


/// @brief 
/// @param  
/// @return 
int main(void)
{

    // fpioa映射
    fpioa_set_function(4, FUNC_UART1_RX);
    fpioa_set_function(5, FUNC_UART1_TX);

    uart_init(UART_DEVICE_1);
    uart_config(UART_DEVICE_1,115200,UART_BITWIDTH_8BIT,UART_STOP_1,UART_PARITY_NONE);
    char *myword = {"test word!!\n"};
    uart_send_data(UART_DEVICE_1,myword,strlen(myword));

    while(1)
    {
        msleep(1000);
        uart_send_data(UART_DEVICE_1,myword,strlen(myword));
       
    }
    }

}

04 高速串口测试例程

#include "fpioa.h"
#include "sleep.h"
#include "uart.h"
#include <string.h>


/// @brief 
/// @param  
/// @return 
int main(void)
{

    // fpioa映射
    fpioa_set_function(4, FUNC_UARTHS_RX);
    fpioa_set_function(5, FUNC_UARTHS_TX);

    uart_init(UART_DEVICE_1);
    uart_config(UART_DEVICE_1,115200,UART_BITWIDTH_8BIT,UART_STOP_1,UART_PARITY_NONE);
    char *myword = {"0000!!\n"};
    uart_send_data(UART_DEVICE_1,myword,strlen(myword));

    while(1)
    {
        msleep(1000);
        uart_send_data(UART_DEVICE_1,myword,strlen(myword));
       
    }

}

05 效果测试

image

posted on 2024-03-19 21:52  leapahead  阅读(126)  评论(0编辑  收藏  举报