usart.h

来自「MICROCHIP PIC16F6XX USART DRIVER」· C头文件 代码 · 共 64 行

H
64
字号
#ifndef _SERIAL_H_
#define _SERIAL_H_

#include "dtypes.h"

#define BAUD		9600      
#define FOSC		4000000L
#define NINE		0		/* Use 9bit communication? FALSE=8bit */

#define DIVIDER		((int)(FOSC/(16UL * BAUD) -1))
#define HIGH_SPEED	1

#if NINE == 1
#define NINE_BITS	0x40
#else
#define NINE_BITS	0
#endif

#if HIGH_SPEED == 1
#define SPEED		0x4
#else
#define SPEED		0
#endif

#if defined(_16F87) || defined(_16F88)
	#define RX_PIN	TRISB2
	#define TX_PIN	TRISB5
#elif defined(_16F687) || defined(_16F689)|| defined(_16F690)
	#define RX_PIN	TRISB5
	#define TX_PIN	TRISB7
#else
	#define RX_PIN	TRISC7
	#define TX_PIN	TRISC6
#endif

void	USART_Init(void);
void	USART_PutByte(u8 byte);
u8		USART_GetByte(void);
void	USART_PutNinth(u8 byte);
u8		USART_GetNinth(void);
u8		USART_GetFERR(void);
u8		USART_CheckOERR(void);

/* Serial initialization */
#define init_comms()			\
{								\
	RX_PIN = 1;					\
	TX_PIN = 0;		  			\
	ANSELH = 0x00;				\
	SPBRG = DIVIDER;    		\
	RCSTA = (NINE_BITS | 0x90);	\
	TXSTA = (SPEED | NINE_BITS);\
	SPEN = 1;		  			\
	SYNC = 0;		  			\
	TXEN = 1;					\
	CREN = 1;					\
}

void	putch(u8);
u8		getch(void);
u8		getche(void);

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?