📄 uart.h
字号:
/* uart.h */
#ifndef UART_H
#define UART_H
#ifdef __cplusplus
extern "C"
{
#endif
// 奇偶校验标识
#define UART_BIT_9_H 0xA5
#define UART_BIT_9_L 0x5A
// 波特率定义
#define BAUD_RATE 1200
#define IR_CARRIER 38000
// ACLK=32768,SMCLK=ACLK*32
#define SMCLK_FREQ (32768*32)
// generate IR carrier
#define IR_CAR_GEN (SMCLK_FREQ/IR_CARRIER)
// BAUD_RATE
#define Bitime_5 (SMCLK_FREQ/(2*BAUD_RATE)) // ~ 0.5 bit length + small adjustment 13.6533
#define Bitime ((SMCLK_FREQ/BAUD_RATE)) // 427us bit length ~ 2341 baud 27.30666
// 串口发送定义
#define N_HALF_CLK 10
#define N_SEND_BIT 200
// 串口接收定义
#define UART_HALF_BIT_TIME_1200 14
#define UART_BIT_TIME_1200 27
// 串口波特率定义
#define BAUD_RATE_1200 0
#define BAUD_RATE_2400 3
#define BAUD_RATE_4800 6
#define BAUD_RATE_9600 9
#define BAUD_RATE_115200 12
#define FRAME_BUFFER_LEN 128
/* X-modem protocol format */
#define XM_SOH 0
#define XM_BLK 1
#define XM_RBLK 2
#define XM_DAT 3
#define XM_CS 131
#define XM_PTR 132
#define XM_REV 133
#define XM_FLASH_PTR 134
//ASCII code *
#define ASCII_SOH 0x01
#define ASCII_EOT 0x04
#define ASCII_ACK 0x06
#define ASCII_NAK 0x15
#define ASCII_CAN 0x18
#define ASCII_END 0x01
typedef struct _t_frm_
{
unsigned char soh;
unsigned char blk;
unsigned char rblk;
unsigned char buffer[FRAME_BUFFER_LEN];
unsigned char cs;
unsigned char ptr;
unsigned char reversed;
unsigned short flash_ptr;
}_t_frm;
typedef struct _t_pre_frm_
{
unsigned char blk;
unsigned char resp;
}_t_pre_frm;
extern void ext_io(unsigned short io);
extern void check_rx_buffer(unsigned char *frm,unsigned char *pre_frm);
extern void uart_wait(void);
extern void _uart_start_to_rx(unsigned char *frm);
extern void _uart_start_to_tx(unsigned char data);
extern void _uart_wait(void);
#ifdef DTSD
#define RS_TX_EN() (ext_io(0xFFFB))
#define RS_RX_EN() (ext_io(0xFFFF))
#else
#ifdef DTSF
#define RS_TX_EN() (UART_TX_EN_OUT&=~UART_TX_EN)
#define RS_RX_EN() (UART_TX_EN_OUT|=UART_TX_EN)
#else
#define RS_TX_EN() (UART_TX_EN_OUT|=UART_TX_EN)
#define RS_RX_EN() (UART_TX_EN_OUT&=~UART_TX_EN)
#endif
#endif
#ifdef __cplusplus
}
#endif
#endif /* UART_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -