DRV_UART
DRV_UART API Status
API |
|---|
DRV_UART UNIT Number
Capability |
Number |
|---|---|
UNIT Number |
2 |
DRV_UART Pin and GPIO Map
uart Pin |
Number |
|---|---|
uart0_tx |
0 |
uart0_rx |
1 |
uart1_tx |
7 |
uart1_rx |
8 |
DRV_UART API Reference
Header File
Functions
-
uint32_t drv_uart_init(uint32_t dev_index)
init a uart device.
初始化uart设备,在使用uart功能前需要调用它获取device instance
- 参数:
dev_index – [in] device index, from 0(the first device)
- 返回值:
0 – fail
other – success
- 返回:
device instance
-
int32_t drv_uart_deinit(uint32_t dev_instance)
deinit a uart device.
反初始化uart设备,对drv_uart_device_init()进行反向操作
- 参数:
dev_instance – [in] return value of drv_uart_device_init()
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_uart_cfg_param(uint32_t dev_instance, uart_bits_e e_data_bits, uint32_t stop_bits, uart_parity_e e_parity, uint32_t baudrate)
config uart parameter.
配置uart的常规参数
- 参数:
dev_instance – [in] return value of drv_uart_device_init()
e_data_bits – [in] see uart_bits_e
stop_bits – [in] valid value: 1 and 2
e_parity – [in] see uart_parity_e
baudrate – [in] 波特率设置
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_uart_cfg_flow_ctrl(uint32_t dev_instance, uart_polarity_e rts_pol, uart_polarity_e cts_pol)
config uart polarity.
流控的CTS、RTS选择
- 参数:
dev_instance – [in] return value of drv_uart_device_init()
rts_pol – [in] RTS polarity, see uart_polarity_e
cts_pol – [in] CTS polarity, see uart_polarity_e
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_uart_enable_tx(uint32_t dev_instance, bool enable)
uart tx enable or not.
打开或关闭uart的tx功能
- 参数:
dev_instance – [in] return value of drv_uart_device_init()
enable – [in] true: enable false: disable
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_uart_enable_rx(uint32_t dev_instance, bool enable)
uart rx enable or not.
打开或关闭uart的rx功能
- 参数:
dev_instance – [in] return value of drv_uart_device_init()
enable – [in] true: enable false: disable
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_uart_tx(uint32_t dev_instance, uint8_t *pu1_buf, uint32_t size)
uart send.
uart 同步发送,直接写TX FIFO,全部数据写完后该函数才返回
- 参数:
dev_instance – [in] return value of drv_uart_device_init()
pu1_buf – [in] pointer to the send buffer
size – [in] send buffer size
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
uint32_t drv_uart_get_tx_fifo_addr(uint32_t dev_instance)
get uart tx fifo address.
获取TX FIFO的地址,通常用来给上层套DMA使用时需要
- 参数:
dev_instance – [in] 参数说明部分
- 返回:
tx fifo address
-
int32_t drv_uart_rx(uint32_t dev_instance, uint8_t *pu1_buf, uint32_t size)
uart receive.
uart 同步接收,直接读RX FIFO,读够期望的长度该函数才会返回
- 参数:
dev_instance – [in] return value of drv_uart_device_init()
pu1_buf – [in] pointer to the send receive
size – [in] request rx size
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
uint32_t drv_uart_get_rx_fifo_addr(uint32_t dev_instance)
get uart rx fifo address.
获取RX FIFO的地址,通常用来给上层套DMA使用时需要
- 参数:
dev_instance – [in] 参数说明部分
- 返回:
rx fifo address
-
int32_t drv_uart_rx_async(uint32_t dev_instance, uint8_t *pu1_buf, uint32_t size, pfunc_uart_cb_t pfn_cb)
uart receive asynchronously.
uart 异步接收,该函数立即,收够期望的长度后再调用 pfn_cb 通知用户 如果对方一直发送数据,我们这里响应太慢,rx FIFO存在full的可能 需要和对方协商好一次发的数据不要超过FIFO深度。推荐使用dma的方式来接收
- 参数:
dev_instance – [in] return value of drv_uart_device_init()
pu1_buf – [in] pointer to the send receive
size – [in] request rx size
pfn_cb – [in] callback when rx finish
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_uart_cfg_rxtimeout_callback(uint32_t dev_instance, pfunc_uart_rxtimeout_t pfn_cb, void *pv_arg)
config uart rx timeout callback.
通常是在uart套DMA使用的时候需要. drv_uart_rx()/drv_uart_rx_async() 这2种收数据的方式不需要配置该回调
- 参数:
dev_instance – [in] return value of drv_uart_device_init()
pfn_cb – [in] callback for rx finish
pv_arg – [in] callback parameter
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
void uart_aec_data_dump(uint8_t *mic, uint8_t *ref, uint8_t *out, uint32_t len, uint32_t adc_ch)
Macros
-
UART_DEVICE_NUM
Type Definitions
-
typedef enum _uart_bits_e uart_bits_e
-
typedef enum _uart_parity_e uart_parity_e
-
typedef enum _uart_polarity_e uart_polarity_e
-
typedef void (*pfunc_uart_cb_t)(uint32_t dev_instance, uint8_t *pu1_buf, uint32_t size)
-
typedef void (*pfunc_uart_rxtimeout_t)(uint32_t dev_instance, void *pv_arg)
Enumerations
-
enum _uart_bits_e
Values:
-
enumerator DRV_UART_5BITS
-
enumerator DRV_UART_6BITS
data length: 5bit
-
enumerator DRV_UART_7BITS
data length: 6bit
-
enumerator DRV_UART_8BITS
data length: 7bit
-
enumerator DRV_UART_5BITS