📄 hand_serial_all_h.h
字号:
#ifndef HAND_SERIAL_ALL_H
#define HAND_SERIAL_ALL_H
#include "c8051f020.h"
#define BYTE unsigned char
#define ES1_ON EIE2|=0x40
#define ES1_OFF EIE2&=0xbf
#define TI1_ON SCON1|=0x02
#define TI1_OFF SCON1&=0xfd
#define RI1_ON SCON1|=0x01
#define RI1_OFF SCON1&=0xfe
#define TI1 SCON1&0x02
#define RI1 SCON1&0x01
#define TR4_ON T4CON|=0x04
//cygnal宏定义
#define BAUDRATE 9600 // Baud rate of UART in bps
#define BAUDRATE1 9600 // Baud rate of UART in bps
#define SYSCLK 24000000 // SYSCLK frequency in Hz
//#define SYSCLK 22118400 // SYSCLK frequency in Hz
//#define BAUD_TIMER -SYSCLK/BAUDRATE/16/12
//#define BAUD_TIMER -SYSCLK/BAUDRATE/32/12
#define BAUD_TIMER -SYSCLK/BAUDRATE/16
//波特率计算方法,如果smod=0,16->32 如果要用高速,可选择外部时钟不分频,不用/12,见CKCON
#define BAUD_TIMER2 SYSCLK/BAUDRATE/32
//因为TIMER2做波特率发生器,BAUDRATE=SYSCLK/(32*65536-[RCAP2H:RCAP2L])
#define BAUD_TIMER4 SYSCLK/BAUDRATE1/32
//因为TIMER4做波特率发生器,BAUDRATE1=SYSCLK/(32*65536-[RCAP4H:RCAP4L])
#define MY_USE_TIMER 10000 //10ms
#define TIMER_CONSTANT SYSCLK/1000*MY_USE_TIMER/1000/12
//如果要用高速,可选择外部时钟不分频,不用/12,见CKCON
//ring_buff 定义
typedef struct
{
BYTE ring_buffer_len;
BYTE read_index;
BYTE write_index;
BYTE *buffer_ptr;
BYTE empty;
}type_of_ring_buffer;
//timer定义
typedef struct
{
BYTE active;
BYTE timer_off;
int timer_value;
}type_of_timer;
#define SERIAL_BUFF_LEN 250 //串口BUFF的长度
//串口0全局变量
//type_of_ring_buffer send_buff_com_0;
//type_of_ring_buffer recv_buff_com_0;
//串口1全局变量
//type_of_ring_buffer send_buff_com_1;
//type_of_ring_buffer recv_buff_com_1;
void init_ring_buffer(type_of_ring_buffer *ring_buffer, BYTE data_buffer_len,BYTE *data_buff_array);
BYTE get_char_from_buff(type_of_ring_buffer *ring_buffer);
void put_char_to_buff(type_of_ring_buffer *ring_buffer,BYTE t_data);
void serial_init(void);
BYTE if_empty_com_0(void);
BYTE if_empty_com_1(void);
void putbyte_com_0(char c);
void putstring_com_0(BYTE *c);
void puthex_com_0(BYTE c);
BYTE getbyte_com_0(void);
void putbyte_com_1(char c);
void putstring_com_1(BYTE *c);
void puthex_com_1(BYTE c);
BYTE getbyte_com_1(void);
void init_timer(type_of_timer *l_timer);
void opentimer(type_of_timer *l_timer,int l_timer_value);
void closetimer(type_of_timer *l_timer);
void delay_10ms(BYTE l_10ms_times);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -