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

110 lines
3.4 KiB
C
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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;
#if defined(DEBUG_LOG_ENABLE)
#define HF_Debug( debug_level, format, ...) printf(format, ##__VA_ARGS__)
#else
void HSF_API HF_Debug(int debug_level, const char *format, ...);
#endif
#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__)
#define e_printf(...) \
do { \
HF_Debug(DEBUG_WARN, "[Ekko]%d %s():%d: ", hfsys_get_time(), \
__FUNCTION__, __LINE__); \
HF_Debug(DEBUG_WARN, __VA_ARGS__); \
} while (0)
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前设置默认不保存flash如需参数保存调用hfconfig_file_save();.
*/
int HSF_API hfset_uart_parameters(int baud,ENCOMBITS_E data_bits,ENCOMSTOPBITS_E stop_bits,ENCOMPARITY_E parity);
#endif