12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #ifndef NRF_USR_UART_H
- #define NRF_USR_UART_H
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- #include "define.h"
- #include "nrf_gpio.h"
- #include "nrf_uart.h"
- #include "app_uart.h"
- #define UART_TX_BUF_SIZE USER_UART_SEND_LEN //串口发送缓存大小(字节数)
- #define UART_RX_BUF_SIZE 1 //串口接收缓存大小(字节数)
-
- typedef void (*modbus_rec_func)(uint8_t *data,uint8_t *len,bool *stat);
- typedef void (*uart_rec_func)(char *data);
- typedef void (*hex_rec_func)(void);
- typedef void (*single_hex_rec_func)(uint8_t data);
-
- typedef enum{
- UART_STR,
- UART_MODBUS,
- UART_HEX,
- UART_TERMINAL,
- }uart_work_stat;
- typedef struct{
- bool uart_init_stat;
- uart_work_stat uart_work;
- bool uart_rx_stat; //uart接收完成标志
- char uart_re_Byte[USER_UART_REBYTE_LEN]; //模块返回信息存储
- char uart_tx_Byte[USER_UART_SEND_LEN]; //模块返回信息存储
- uint16_t uart_re_addr_count; //存储位置计数
- char *uart_re_addr; //当前保存的位置
- char *uart_re_addr_begin; //当前区域的首地址
- char *uart_re_array[10]; //存放的内存地址位置
- uint8_t uart_re_count_array[10]; //存放的数据数量
- uint8_t uart_re_point; //当前存放内存数组位置
- uart_rec_func m_uart_rec_func;
-
- uint8_t modbus_receive[MODBUS_REC_LEN];
- uint8_t modbus_len;
- bool modbus_rec;
- modbus_rec_func m_modbus_rec_func;
-
- uint8_t *hex_receive;
- bool hex_pro; //false:接收固定长度数据后处理,true:实时处理
- uint8_t hex_len;
- uint8_t hex_size;
- bool hex_rec;
- hex_rec_func m_hex_rec_func;
- single_hex_rec_func m_single_hex_rec_func;
- }user_uart_s;
-
- typedef enum
- {
- USER_UART_QUEUE_TIME=0,
- USER_UART_QUEUE_INT=1,
- }USER_UART_QUEUE_TYPE;
- void uart_open_9600(void);
- void uart_open(void);
- void uart_close(void);
- void UartSendString(char *pBuffer);
- void UartSendHex(uint8_t *hex,uint16_t len,bool space);
- void UartSendData(uint8_t *ch,uint16_t len);
- void Modbus_Set_Init(void);
- void Uart_Set_Init(void);
- void Uart_ReData_Pro(void);
- void Hex_Set_Init(uint8_t *buffer,uint8_t size);
- void set_uart_pin(uint32_t tx,uint32_t rx);
- void set_hex_rec_func(hex_rec_func func);
- void set_single_hex_rec_func(single_hex_rec_func func);
- void set_string_rec_func(uart_rec_func func);
- void set_terminal_rec_func(uart_rec_func func);
- void Set_User_Uart_Queue(USER_UART_QUEUE_TYPE type);
- extern user_uart_s usr_uart;
-
- #ifdef __cplusplus
- }
- #endif
- #endif // NRF_USR_UART_H
|