DRV_DLP
DRV_DLP API Status
API |
|---|
DRV_DLP API Reference
Header File
Functions
-
uint32_t drv_dlp_init(uint32_t dev_index)
init a dlp device.
初始化dlp设备,在使用dlp功能前需要调用它获取device instance
- 参数:
dev_index – [in] device index, from 0(the first device)
- 返回值:
0 – fail
other – success
- 返回:
device instance
-
int32_t drv_dlp_deinit(uint32_t dev_instance)
deinit a dlp device.
反初始化dlp设备,对drv_dlp_device_init()进行反向操作
- 参数:
dev_instance – [in] return value of drv_dlp_device_init()
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_dlp_cfg_param(uint32_t dev_instance, dlp_bits_e e_data_bits, uint32_t stop_bits, dlp_parity_e e_parity, uint32_t baudrate)
config dlp parameter.
配置dlp的常规参数
- 参数:
dev_instance – [in] return value of drv_dlp_device_init()
e_data_bits – [in] see dlp_bits_e
stop_bits – [in] valid value: 1 and 2
e_parity – [in] see dlp_parity_e
baudrate – [in] 波特率设置
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_dlp_cfg_flow_ctrl(uint32_t dev_instance, dlp_polarity_e rts_pol, dlp_polarity_e cts_pol)
config dlp polarity.
流控的CTS、RTS选择
- 参数:
dev_instance – [in] return value of drv_dlp_device_init()
rts_pol – [in] RTS polarity, see dlp_polarity_e
cts_pol – [in] CTS polarity, see dlp_polarity_e
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_dlp_enable_tx(uint32_t dev_instance, bool enable)
dlp tx enable or not.
打开或关闭dlp的tx功能
- 参数:
dev_instance – [in] return value of drv_dlp_device_init()
enable – [in] true: enable false: disable
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_dlp_enable_rx(uint32_t dev_instance, bool enable)
dlp rx enable or not.
打开或关闭dlp的rx功能
- 参数:
dev_instance – [in] return value of drv_dlp_device_init()
enable – [in] true: enable false: disable
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_dlp_tx(uint32_t dev_instance, uint8_t *pu1_buf, uint32_t size)
dlp send.
dlp 同步发送,直接写TX FIFO,全部数据写完后该函数才返回
- 参数:
dev_instance – [in] return value of drv_dlp_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_dlp_get_tx_fifo_addr(uint32_t dev_instance)
get dlp tx fifo address.
获取TX FIFO的地址,通常用来给上层套DMA使用时需要
- 参数:
dev_instance – [in] 参数说明部分
- 返回:
tx fifo address
-
int32_t drv_dlp_rx(uint32_t dev_instance, uint8_t *pu1_buf, uint32_t size)
dlp receive.
dlp 同步接收,直接读RX FIFO,读够期望的长度该函数才会返回
- 参数:
dev_instance – [in] return value of drv_dlp_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_dlp_get_rx_fifo_addr(uint32_t dev_instance)
get dlp rx fifo address.
获取RX FIFO的地址,通常用来给上层套DMA使用时需要
- 参数:
dev_instance – [in] 参数说明部分
- 返回:
rx fifo address
-
int32_t drv_dlp_rx_async(uint32_t dev_instance, uint8_t *pu1_buf, uint32_t size, pfunc_dlp_cb_t pfn_cb)
dlp receive asynchronously.
dlp 异步接收,该函数立即,收够期望的长度后再调用 pfn_cb 通知用户 如果对方一直发送数据,我们这里响应太慢,rx FIFO存在full的可能 需要和对方协商好一次发的数据不要超过FIFO深度。推荐使用dma的方式来接收
- 参数:
dev_instance – [in] return value of drv_dlp_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_dlp_cfg_rxtimeout_callback(uint32_t dev_instance, pfunc_dlp_rxtimeout_t pfn_cb, void *pv_arg)
config dlp rx timeout callback.
通常是在dlp套DMA使用的时候需要. drv_dlp_rx()/drv_dlp_rx_async() 这2种收数据的方式不需要配置该回调
- 参数:
dev_instance – [in] return value of drv_dlp_device_init()
pfn_cb – [in] callback for rx finish
pv_arg – [in] callback parameter
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_dlp_input_control(uint32_t dev_instance, dlp_in_ctl_e e_ctl_val)
DLP input port control.
输入端口的控制,当使用手动控制方式时,会禁用输出端口
- 参数:
dev_instance – [in] return value of drv_dlp_device_init()
e_ctl_val – [in] see dlp_in_ctl_e
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_dlp_output_control(uint32_t dev_instance, dlp_out_ctl_e e_ctl_val)
DLP output port control.
输出端口的控制,当使用手动控制方式时,会禁用输入端口
- 参数:
dev_instance – [in] return value of drv_dlp_device_init()
e_ctl_val – [in] see dlp_out_ctl_e
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
-
int32_t drv_dlp_get_byte(uint32_t dev_instance)
get rx byte from hw fifo.
- 参数:
dev_instance – [in] return value of drv_dlp_device_init()
- 返回值:
>=0 – success
<0 – fail
- 返回:
result
-
int32_t drv_dlp_rx_fifo_read_enable(uint32_t dev_instance, uint32_t intr_level)
config rx fifo interrupt.
- 参数:
dev_instance – [in] return value of drv_dlp_device_init()
intr_level – [in] generate interrupt when rx byte >= intr_level
- 返回值:
0 – success [BK_RET_OK]
other – fail
- 返回:
result
Macros
-
DLP_DEVICE_NUM
Type Definitions
-
typedef enum _dlp_bits_e dlp_bits_e
-
typedef enum _dlp_parity_e dlp_parity_e
-
typedef enum _dlp_polarity_e dlp_polarity_e
-
typedef enum _dlp_in_ctl_e dlp_in_ctl_e
-
typedef enum _dlp_out_ctl_e dlp_out_ctl_e
-
typedef void (*pfunc_dlp_cb_t)(uint32_t dev_instance, uint8_t *pu1_buf, uint32_t size)
-
typedef void (*pfunc_dlp_rxtimeout_t)(uint32_t dev_instance, void *pv_arg)
Enumerations
-
enum _dlp_bits_e
Values:
-
enumerator DRV_DLP_5BITS
-
enumerator DRV_DLP_6BITS
data length: 5bit
-
enumerator DRV_DLP_7BITS
data length: 6bit
-
enumerator DRV_DLP_8BITS
data length: 7bit
-
enumerator DRV_DLP_5BITS
-
enum _dlp_parity_e
Values:
-
enumerator DRV_DLP_ODD
-
enumerator DRV_DLP_EVEN
奇校验
-
enumerator DRV_DLP_PARITY_NONE
偶校验
不校验
-
enumerator DRV_DLP_ODD
-
enum _dlp_polarity_e
Values:
-
enumerator DRV_DLP_POL_HIGH_ACCEPT
-
enumerator DRV_DLP_POL_LOW_ACCEPT
CTS/RTX极性: 高允许,低阻止
-
enumerator DRV_DLP_POL_NONE
CTS/RTX极性: 低允许,高阻止
CTS/RTX极性: 不启用 (常用,需要和对方匹配)
-
enumerator DRV_DLP_POL_HIGH_ACCEPT
-
enum _dlp_in_ctl_e
Values:
-
enumerator DRV_DLP_IN_AUTO_CTL
-
enumerator DRV_DLP_IN_MANUAL_DISABLE
DLP自动控制端口输入使能 (default)
-
enumerator DRV_DLP_IN_MANUAL_ENABLE_FORCE_1
SW手动控制输入,关闭
-
enumerator DRV_DLP_IN_MANUAL_ENABLE_FROM_EXT
SW手动控制输入,打开并强制成1.
-
enumerator DRV_DLP_IN_AUTO_CTL
-
enum _dlp_out_ctl_e
Values:
-
enumerator DRV_DLP_OUT_AUTO_CTL
-
enumerator DRV_DLP_OUT_MANUAL_DISABLE
DLP自动控制端口输入使能 (default)
-
enumerator DRV_DLP_OUT_MANUAL_ENABLE_FORCE_1
SW手动控制输入,关闭
-
enumerator DRV_DLP_OUT_MANUAL_ENABLE_FORCE_0
SW手动控制输入,打开并强制成1.
-
enumerator DRV_DLP_OUT_MANUAL_ENABLE_FROM_DLP
SW手动控制输入,打开并强制成0.
-
enumerator DRV_DLP_OUT_AUTO_CTL