STC单片机的串口UART1,2,3,4的配置。几乎适用于所有STC单片机,4个串口可同时配置使用,函数由结构体封装打包好,非常方便。
--------------------------STC_UART函数目录--------------------------
//注意:若主循环正在打印突然跳到中断中恰好又掉用printf1,2,3,4,恢复后会使主循环中的打印错误
//printf与printf1,2,3,4, 相互独立,可同时用且互不影响
//自定义printf1,2,3,4打印函数,打印字符最长限制
#define CMD_BUFFER_LEN 50
//#define UART_Printfx //注释则不使用重定向打印函数
//--------------------------------------------------------------------------------
//UART1,2,3,4初始化
void UART1_Init(u32 BaudRate);
void UART2_Init(u32 BaudRate);
void UART3_Init(u32 BaudRate);
void UART4_Init(u32 BaudRate);
//UART1,2,3,4串口打印函数
void printf1 (char *fmt, ...); //变参函数
void printf2 (char *fmt, ...);
void printf3 (char *fmt, ...);
void printf4 (char *fmt, ...);
//UART1,2,3,4发送单个字符
void UART1_SendByte(char dat);
void UART2_SendByte(char dat);
void UART3_SendByte(char dat);
void UART4_SendByte(char dat);
//UART1,2,3,4发送字符串
void UART1_SendStr(char *TI_Dat);
void UART2_SendStr(char *TI_Dat);
void UART3_SendStr(char *TI_Dat);
void UART4_SendStr(char *TI_Dat);
//UART1,2,3,4接收Leng个字符
void UART1_ReceiveStr(u8 Leng,u8 *dat);
void UART2_ReceiveStr(u8 Leng,u8 *dat);
void UART3_ReceiveStr(u8 Leng,u8 *dat);
void UART4_ReceiveStr(u8 Leng,u8 *dat);
//获取期待值 NULL 表示无效的
bit UART_extract(u8 *Puf_0,u8 *Puf_1,u32 time); //从串口中获取所期待的数据 NULL 表示无效的
//计算指针所指数组元素个数 //警告; count(0);返回的是2原因不明
unsigned char count(u8 *p);
void UART_Send_Str(char *s); // 发送字符串
void UART_Send_Num(unsigned long dat); // 发送数值
void UART_Send_StrNum(char *inf,unsigned long dat); // 发送字符串+数值
void UART_Send_Hex(unsigned int hex); // 发送16进制(整数范围)
void UART_Send_binary(unsigned char dat); // 发送2进制
void UART_Send_Enter();
void UART_Send_Byte(unsigned char dat);
//UART初始化
void UART_Init(u8 UARTx, UART_InitTypeDef *UART_InitStructure);
1