⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uart.c

📁 瑞萨CAN通讯单片机程序
💻 C
📖 第 1 页 / 共 3 页
字号:
	SI03SEL &= ~ISR2;					/* Select receive-finished interrupt */
	SI03MASK &= ~T2MASK;					/* Disable SIO2 transmit interrupt request */
	SI03MASK |= R2MASK;					/* Enable SIO2 receive interrupt request */
	SI23STAT = ~( IRQT2 | IRQR2);				/* Clear interrupt request */

/*** Starting transmission/reception ***/

	S2TCNT |= TEN;						/* Enable transmission */
	S2RCNT |= REN;						/* Enable reception */
}

/*""FUNC COMMENT""*******************************************************
 * Function name: SIO3_init()
 *-----------------------------------------------------------------------
 * Description	: Sets SIO3 for 8-bit UART
 * 		: - Reception by interrupt
 * 		: - Program transmission
 *-----------------------------------------------------------------------
 * Argument	: -
 *-----------------------------------------------------------------------
 * Returns	: -
 *-----------------------------------------------------------------------
 * Notes	: Port input function must be enabled
 * 		: Must be executed while interrupts are disabled
 * 		: Interrupt priority levels are common to both SIO2,3 transmission and reception
 *""FUNC COMMENT END""***************************************************/
void	SIO3_init( void)
{

/*** Setting transfer mode */

	S3RCNT = 0x00;						/* Disable reception */
	S3TCNT = SnTCNT_INI;					/* f(BCLK) and disable transmission */
	P17MOD |= P17MOD_SCI3;					/* Set P17 for SCI3 mode */
	S3MOD = SnMOD_INI;					/* Set data format */
	S3BAUR = BAUD_62_5;					/* Set baud rate */

/*** Interrupt related settings ***/

	ISIO23CR = SioILEVEL;			/* Set SIO2,3 transmission and reception interrupt priority level */
	SI03SEL &= ~ISR3;					/* Select receive-finished interrupt */
	SI03MASK &= ~T3MASK;					/* Disable SIO3 transmit interrupt request */
	SI03MASK |= R3MASK;					/* Enable SIO3 receive interrupt request */
	SI23STAT = ~( IRQT3 | IRQR3);				/* Clear interrupt request */

/*** Starting transmission/reception ***/

	S3TCNT |= TEN;						/* Enable transmission */
	S3RCNT |= REN;						/* Enable reception */
}

/*""FUNC COMMENT""*******************************************************
 * Function name: SIO4_init()
 *-----------------------------------------------------------------------
 * Description	: Sets SIO4 for 8-bit UART
 * 		: - Reception by interrupt
 * 		: - Program transmission
 *-----------------------------------------------------------------------
 * Argument	: -
 *-----------------------------------------------------------------------
 * Returns	: -
 *-----------------------------------------------------------------------
 * Notes	: Port input function must be enabled
 * 		: Must be executed while interrupts are disabled
 * 		: Interrupt priority levels are common to both SIO4,5 transmission and reception
 *""FUNC COMMENT END""***************************************************/
void	SIO4_init( void)
{

/*** Setting transfer mode */

	S4RCNT = 0x00;						/* Disable reception */
	S4TCNT = SnTCNT_INI;					/* f(BCLK) and disable transmission */
	P20MOD |= P20MOD_SCI4;					/* Set P20 for SCI4 mode */
	S4MOD = SnMOD_INI;					/* Set data format */
	S4BAUR = BAUD_62_5;					/* Set baud rate */

/*** Interrupt related settings ***/

	ISIO45CR = SioILEVEL;			/* Set SIO4,5 transmission and reception interrupt priority level */
	SI45SEL &= ~ISR4;					/* Select receive-finished interrupt */
	SI45MASK &= ~T4MASK;					/* Disable SIO4 transmit interrupt request */
	SI45MASK |= R4MASK;					/* Enable SIO4 receive interrupt request */
	SI45STAT = ~( IRQT4 | IRQR4);				/* Clear interrupt request */

/*** Starting transmission/reception ***/

	S4TCNT |= TEN;						/* Enable transmission */
	S4RCNT |= REN;						/* Enable reception */
}

/*""FUNC COMMENT""*******************************************************
 * Function name: SIO5_init()
 *-----------------------------------------------------------------------
 * Description	: Sets SIO5 for 8-bit UART
 * 		: - Reception by interrupt
 * 		: - Program transmission
 *-----------------------------------------------------------------------
 * Argument	: -
 *-----------------------------------------------------------------------
 * Returns	: -
 *-----------------------------------------------------------------------
 * Notes	: Port input function must be enabled
 * 		: Must be executed while interrupts are disabled
 * 		: Interrupt priority levels are common to both SIO4,5 transmission and reception
 *""FUNC COMMENT END""***************************************************/
void	SIO5_init( void)
{

/*** Setting transfer mode */

	S5RCNT = 0x00; 					/* Disable reception */
	S5TCNT = SnTCNT_INI;					/* f(BCLK) and disable transmission */
	P20MOD |= P20MOD_SCI5;					/* Set P20 for SCI5 mode */
	S5MOD = SnMOD_INI;					/* Set data format */
	S5BAUR = BAUD_62_5;					/* Set baud rate */

/*** Interrupt related settings ***/

	ISIO45CR = SioILEVEL;			/* Set SIO4,5 transmission and reception interrupt priority level */
	SI45SEL &= ~ISR5;					/* Select receive-finished interrupt */
	SI45MASK &= ~T5MASK;					/* Disable SIO5 transmit interrupt request */
	SI45MASK |= R5MASK;					/* Enable SIO5 receive interrupt request */
	SI45STAT = ~( IRQT5 | IRQR5);				/* Clear interrupt request */

/*** Starting transmission/reception ***/

	S5TCNT |= TEN;						/* Enable transmission */
	S5RCNT |= REN;						/* Enable reception */
}

/*""FUNC COMMENT""*******************************************************
 * Function name: SIO0_Tr()
 *-----------------------------------------------------------------------
 * Description	: Transmits data from SIO0
 *-----------------------------------------------------------------------
 * Argument	: unsigned char *TrBuf	Pointer to transmit data buffer
 * 		: unsigned int TrNum	Number of transmit bytes
 *-----------------------------------------------------------------------
 * Returns	: -
 *-----------------------------------------------------------------------
 * Notes	: Do not always need to wait for end of transmission
 *""FUNC COMMENT END""***************************************************/
void  SIO0_Tr( unsigned char *TrBuf, unsigned int TrNum)
{
	unsigned long	i;

	for( i = 0; i < TrNum; i++) {
		while(( S0TCNT & TBE) == 0);			/* Wait until transmit buffer is empty */
		S0TXB_L = *TrBuf++;				/* Transfer return data */
	}
	while(( S0TCNT & TSTAT) != 0);				/* Wait for end of transmission */
}

/*""FUNC COMMENT""*******************************************************
 * Function name: SIO1_Tr()
 *-----------------------------------------------------------------------
 * Description	: Transmits data from SIO1
 *-----------------------------------------------------------------------
 * Argument	: unsigned char *TrBuf	Pointer to transmit data buffer
 * 		: unsigned int TrNum	Number of transmit bytes
 *-----------------------------------------------------------------------
 * Returns	: -
 *-----------------------------------------------------------------------
 * Notes	: Do not always need to wait for end of transmission
 *""FUNC COMMENT END""***************************************************/
void  SIO1_Tr( unsigned char *TrBuf, unsigned int TrNum)
{
	unsigned long	i;

	for( i = 0; i < TrNum; i++) {
		while(( S1TCNT & TBE) == 0);			/* Wait until transmit buffer is empty */
		S1TXB_L = *TrBuf++;				/* Transfer return data */
	}
	while(( S1TCNT & TSTAT) != 0);				/* Wait for end of transmission */
}

/*""FUNC COMMENT""*******************************************************
 * Function name: SIO2_Tr()
 *-----------------------------------------------------------------------
 * Description	: Transmits data from SIO2
 *-----------------------------------------------------------------------
 * Argument	: unsigned char *TrBuf	Pointer to transmit data buffer
 * 		: unsigned int TrNum	Number of transmit bytes
 *-----------------------------------------------------------------------
 * Returns	: -
 *-----------------------------------------------------------------------
 * Notes	: Do not always need to wait for end of transmission
 *""FUNC COMMENT END""***************************************************/
void  SIO2_Tr( unsigned char *TrBuf, unsigned int TrNum)
{
	unsigned long	i;

	for( i = 0; i < TrNum; i++) {
		while(( S2TCNT & TBE) == 0);			/* Wait until transmit buffer is empty */
		S2TXB_L = *TrBuf++;				/* Transfer return data */
	}
	while(( S2TCNT & TSTAT) != 0);				/* Wait for end of transmission */
}

/*""FUNC COMMENT""*******************************************************
 * Function name: SIO3_Tr()
 *-----------------------------------------------------------------------
 * Description	: Transmits data from SIO3
 *-----------------------------------------------------------------------
 * Argument	: unsigned char *TrBuf	Pointer to transmit data buffer
 * 		: unsigned int TrNum	Number of transmit bytes
 *-----------------------------------------------------------------------
 * Returns	: -
 *-----------------------------------------------------------------------
 * Notes	: Do not always need to wait for end of transmission
 *""FUNC COMMENT END""***************************************************/
void  SIO3_Tr( unsigned char *TrBuf, unsigned int TrNum)
{
	unsigned long	i;

	for( i = 0; i < TrNum; i++) {
		while(( S3TCNT & TBE) == 0);			/* Wait until transmit buffer is empty */
		S3TXB_L = *TrBuf++;				/* Transfer return data */
	}
	while(( S3TCNT & TSTAT) != 0);				/* Wait for end of transmission */
}

/*""FUNC COMMENT""*******************************************************
 * Function name: SIO4_Tr()
 *-----------------------------------------------------------------------
 * Description	: Transmits data from SIO4
 *-----------------------------------------------------------------------
 * Argument	: unsigned char *TrBuf	Pointer to transmit data buffer
 * 		: unsigned int TrNum	Number of transmit bytes
 *-----------------------------------------------------------------------
 * Returns	: -
 *-----------------------------------------------------------------------
 * Notes	: Do not always need to wait for end of transmission
 *""FUNC COMMENT END""***************************************************/
void  SIO4_Tr( unsigned char *TrBuf, unsigned int TrNum)
{
	unsigned long	i;

	for( i = 0; i < TrNum; i++) {
		while(( S4TCNT & TBE) == 0);			/* Wait until transmit buffer is empty */
		S4TXB_L = *TrBuf++;				/* Transfer return data */
	}
	while(( S4TCNT & TSTAT) != 0);				/* Wait for end of transmission */
}

/*""FUNC COMMENT""*******************************************************
 * Function name: SIO5_Tr()
 *-----------------------------------------------------------------------
 * Description	: Transmits data from SIO6
 *-----------------------------------------------------------------------
 * Argument	: unsigned char *TrBuf	Pointer to transmit data buffer
 * 		: unsigned int TrNum	Number of transmit bytes
 *-----------------------------------------------------------------------
 * Returns	: -
 *-----------------------------------------------------------------------

⌨️ 快捷键说明

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