WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
uart.c 文件参考
#include "uart.h"
#include <stdbool.h>
#include "common_def.h"
#include "soc_osal.h"
#include "securec.h"
#include "dma_porting.h"
#include "dma.h"
uart.c 的引用(Include)关系图:

结构体

struct  uart_tx_fragment_t
 A fragment of data that is to be transmitted. 更多...
 
struct  uart_tx_state_t
 The UART transmission configuration parameters. 更多...
 
struct  uart_dma_trans_inf
 
struct  uart_rx_state_t
 The UART reception configuration parameters. 更多...
 

宏定义

#define UART_MAX_NUMBER_OF_FRAGMENTS   4
 Maximum number of fragments per uart for transmission. Configurable field that specifies the maximum numbers of transmissions the driver can queue before it returns false on the write requests.
 
#define UART_PARITY_ERROR_MASK   BIT(8)
 Uart parity error bit mask
 
#define UART_FRAME_ERROR_MASK   BIT(7)
 Uart frame error bit mask.
 
#define DMA_UART_TRANSFER_TIMEOUT_MS   1000
 
#define UART_DMA_TRANS_MEMORY_TO_PERIPHERAL_DMA   1
 
#define UART_DMA_TRANS_PERIPHERAL_TO_MEMORY_DMA   2
 
#define UART_DMA_TRANSFER_DIR_MEM_TO_PERIPHERAL   0
 
#define UART_DMA_TRANSFER_DIR_PERIPHERAL_TO_MEM   1
 
#define UART_DMA_ADDRESS_INC_INCREMENT   0
 
#define UART_DMA_ADDRESS_INC_NO_CHANGE   2
 
#define UART_DMA_PROTECTION_CONTROL_BUFFERABLE   1
 

类型定义

typedef struct uart_dma_trans_inf uart_dma_trans_inf_t
 

函数

errcode_t uapi_uart_init (uart_bus_t bus, const uart_pin_config_t *pins, const uart_attr_t *attr, const uart_extra_attr_t *extra_attr, uart_buffer_config_t *uart_buffer_config)
 初始化指定的串口。
 
errcode_t uapi_uart_deinit (uart_bus_t bus)
 去初始化指定的串口。
 
errcode_t uapi_uart_set_attr (uart_bus_t bus, const uart_attr_t *attr)
 设置串口的基础配置参数。
 
errcode_t uapi_uart_get_attr (uart_bus_t bus, const uart_attr_t *attr)
 获取串口的基础配置参数。
 
errcode_t uapi_uart_register_rx_callback (uart_bus_t bus, uart_rx_condition_t condition, uint32_t size, uart_rx_callback_t callback)
 注册接收回调函数,这个回调函数会根据触发条件和Size触发。
 
errcode_t uapi_uart_register_parity_error_callback (uart_bus_t bus, uart_error_callback_t callback)
 注册奇偶校验错误处理的回调函数。
 
errcode_t uapi_uart_register_frame_error_callback (uart_bus_t bus, uart_error_callback_t callback)
 注册帧错误处理回调函数。
 
int32_t uapi_uart_write (uart_bus_t bus, const uint8_t *buffer, uint32_t length, uint32_t timeout)
 将数据发送到已经打开的UART上,使用直接发送的方式。
 
errcode_t uapi_uart_write_int (uart_bus_t bus, const uint8_t *buffer, uint32_t length, void *params, uart_tx_callback_t finished_with_buffer_func)
 使用中断模式将数据发送到已经打开的UART上,当数据发送完成,会调用回调函数。
 
int32_t uapi_uart_write_by_dma (uart_bus_t bus, const void *buffer, uint32_t length, uart_write_dma_config_t *dma_cfg)
 通过DMA发送数据。
 
int32_t uapi_uart_read_by_dma (uart_bus_t bus, const void *buffer, uint32_t length, uart_write_dma_config_t *dma_cfg)
 通过DMA读取数据。
 
int32_t uapi_uart_read (uart_bus_t bus, const uint8_t *buffer, uint32_t length, uint32_t timeout)
 从UART读取数据。
 
errcode_t uapi_uart_suspend (uintptr_t arg)
 挂起所有的UART通道。
 
errcode_t uapi_uart_resume (uintptr_t arg)
 恢复所有的UART通道。
 
bool uapi_uart_has_pending_transmissions (uart_bus_t bus)
 判断是否存在正在等待的传输。
 
bool uapi_uart_rx_fifo_is_empty (uart_bus_t bus)
 判断RX FIFO是否为空。
 
bool uapi_uart_tx_fifo_is_empty (uart_bus_t bus)
 判断TX FIFO是否为空。
 
void uapi_uart_unregister_rx_callback (uart_bus_t bus)
 去注册接收回调函数。
 

变量

STATIC uart_extra_attr_t g_uart_extra_attr [UART_BUS_MAX_NUM] = { 0 }
 
STATIC uart_rx_callback_t g_uart_callback [UART_BUS_MAX_NUM] = { 0 }
 

宏定义说明

◆ DMA_UART_TRANSFER_TIMEOUT_MS

#define DMA_UART_TRANSFER_TIMEOUT_MS   1000

◆ UART_DMA_ADDRESS_INC_INCREMENT

#define UART_DMA_ADDRESS_INC_INCREMENT   0

◆ UART_DMA_ADDRESS_INC_NO_CHANGE

#define UART_DMA_ADDRESS_INC_NO_CHANGE   2

◆ UART_DMA_PROTECTION_CONTROL_BUFFERABLE

#define UART_DMA_PROTECTION_CONTROL_BUFFERABLE   1

◆ UART_DMA_TRANS_MEMORY_TO_PERIPHERAL_DMA

#define UART_DMA_TRANS_MEMORY_TO_PERIPHERAL_DMA   1

◆ UART_DMA_TRANS_PERIPHERAL_TO_MEMORY_DMA

#define UART_DMA_TRANS_PERIPHERAL_TO_MEMORY_DMA   2

◆ UART_DMA_TRANSFER_DIR_MEM_TO_PERIPHERAL

#define UART_DMA_TRANSFER_DIR_MEM_TO_PERIPHERAL   0

◆ UART_DMA_TRANSFER_DIR_PERIPHERAL_TO_MEM

#define UART_DMA_TRANSFER_DIR_PERIPHERAL_TO_MEM   1

◆ UART_FRAME_ERROR_MASK

#define UART_FRAME_ERROR_MASK   BIT(7)

Uart frame error bit mask.

◆ UART_MAX_NUMBER_OF_FRAGMENTS

#define UART_MAX_NUMBER_OF_FRAGMENTS   4

Maximum number of fragments per uart for transmission. Configurable field that specifies the maximum numbers of transmissions the driver can queue before it returns false on the write requests.

Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2022-2022. All rights reserved.

Description: Provides uart driver source
History:
2022-06-09, Create file.

◆ UART_PARITY_ERROR_MASK

#define UART_PARITY_ERROR_MASK   BIT(8)

Uart parity error bit mask

类型定义说明

◆ uart_dma_trans_inf_t

变量说明

◆ g_uart_callback

STATIC uart_rx_callback_t g_uart_callback[UART_BUS_MAX_NUM] = { 0 }

◆ g_uart_extra_attr

STATIC uart_extra_attr_t g_uart_extra_attr[UART_BUS_MAX_NUM] = { 0 }