LPT26x-HSF-4MB-Hilink_14.2..../application/ws63/hsf/hfuart.h

101 lines
2.9 KiB
C
Raw Normal View History

2025-05-13 22:00:58 +08:00
#ifndef _HF_UART_H_
#define _HF_UART_H_
#include "hsf.h"
#include "ringbuf.h"
#include "hfthread.h"
#define DEBUG_LEVEL_CLOSE 0
#define DEBUG_LEVEL_NON -1
#define DEBUG_LEVEL_CLOSE 0
#define DEBUG_LEVEL_LOW 3
#define DEBUG_LEVEL_MID 4
#define DEBUG_LEVEL_HI 5
#define DEBUG_LEVEL DEBUG_LEVEL_HI
#define DEBUG_SMTLK DEBUG_LEVEL_MID
#define DEBUG_UPGRADE DEBUG_LEVEL_MID
#define DEBUG_ASSIS DEBUG_LEVEL_LOW //DEBUG_LEVEL_CLOSE
#define DEBUG_FLASH DEBUG_LEVEL_LOW
#define DEBUG_BOOTUP DEBUG_LEVEL_LOW
#define DEBUG_ATCMD DEBUG_LEVEL_LOW
#define DEBUG_CONFIG DEBUG_LEVEL_LOW
#define DEBUG_LEVEL_USER 10
#define DEBUG_WARN (DEBUG_LEVEL_USER-2)
#define DEBUG_ERROR (DEBUG_LEVEL_USER-2)
typedef void * hfuart_handle_t;
typedef struct _HFUART_THREAD
{
int uart_id;
hfuart_handle_t uart_handle;
char *uart_buf;
int uart_buf_size;
}HFUART_THREAD,*PHFUART_THREAD;
typedef struct _HFUART
{
unsigned char port; //端口 HF_UART0 0;HF_UART1 1;
char tx_enable;
char rx_enable;
char *rxbuf; //环形buff数据缓冲区
struct ringbuf uart_rx_buf; //串口环形buff句柄
volatile int b_wait_rx;
hfthread_sem_t rx_wait_event; //信号量
char fc_enable;
char fc_full;
char valid;
}HFUART,*PHFUART;
void HSF_API HF_Debug(int debug_level, const char *format , ... );
#define hfdbg_error(...) HF_Debug(DEBUG_ERROR,"[ %d error %s %d]",hfsys_get_time(),__FUNCTION__,__LINE__); \
HF_Debug(DEBUG_ERROR,__VA_ARGS__)
#define hfdbg_warn(...) HF_Debug(DEBUG_WARN,"[warnning %d %s %d]",hfsys_get_time(),__FUNCTION__,__LINE__); \
HF_Debug(DEBUG_WARN,__VA_ARGS__)
#define u_printf(...) HF_Debug(DEBUG_LEVEL_USER,__VA_ARGS__)
int hfuart_config(hfuart_handle_t huart, int baudrate, ENCOMPARITY_E parity, ENCOMBITS_E databits, ENCOMSTOPBITS_E stopbits, ENCOMUARTCTL_E fc);
hfuart_handle_t HSF_API hfuart_open(int uart_id);
int HSF_API hfuart_recv(hfuart_handle_t huart,char *recv,uint32_t bytes,uint32_t timeouts);
int HSF_API hfuart_send(hfuart_handle_t huart, char *data, uint32_t bytes, uint32_t timeouts);
int HSF_API hfuart_close(hfuart_handle_t huart);
int HSF_API hfdbg_get_level(void);
void HSF_API hfdbg_set_level(int level);
/**
* @brief set uart parameters.
*
* @param[in]
* baud:
* data_bits ENCOMBITS_E
* stop_bits ENCOMSTOPBITS_E
* parity ENCOMPARITY_E
* len: the length, in bytes, of the data pointed to write
* @return[out] HF_SUCCESS-successfully, other value is failed
* @see None.
* @note hfnet_start_uart前设置flashhfconfig_file_save();.
*/
int HSF_API hfset_uart_parameters(int baud,ENCOMBITS_E data_bits,ENCOMSTOPBITS_E stop_bits,ENCOMPARITY_E parity);
#endif