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

📄 main.c

📁 相关富士通单片机实用资料5
💻 C
字号:
/*------------------------------------------------------------------------
  MAIN.C
  - description
  - See README.TXT for project description and disclaimer.

/*----------------------------------------------------------------------*/

#include "mb90540.h"

const char welcome[100] = "Welcome at FUJITSU ";
const char txq[100] = "This is a testing route of UART0 with RS485 by Xiaoquan Tang.";
const char typechar[100] = "Please type a char";
char ch;

/*============================== PROCEDURES ======================================*/

void InitUart(void)
{
	/* initialize UART0 e.g. mode, baud rate, stop bit, data length etc. */
	
	DDR4_D40 = 1;				 /* Make SOT0 working */
    DDR4_D41 = 1;				 /* set P41 as output port*/
    URD0 = 0x3C;	             /* set baud rate */
    UMC0 = 0x19;	             /* set various bits */
    PDR4_P41 = 0;				 /* enable RS485 reveive state*/
}

void Putch (char ch)         /* sends a char */
{
	int i;
	PDR4_P41 = 1;			/* enable RS485 transmit state*/
	UODR0 = ch;				/* put ch into buffer			*/
	while (USR0_TDRE == 0); /* wait for transmit end */
	for(i=0;i<=2000;i++);   /* delay*/
	PDR4_P41 = 0;			/* enable RS485 receive state*/
}

char Getch(void)	/* waits for and returns incomming char 	*/
{
  unsigned ch;
  	PDR4_P41 = 0;	/* enable RS485 receive*/
	while(USR0_RDRF == 0);	/* wait for data received  	*/
	if (USR0_ORFE)      	/* overrun error 		*/
	{
		ch = UIDR0;	/* reset error flags 		*/
		return (-1);
	}
	else
		return (UIDR0);	/* return char 			*/
}

void Puts (const char *Name2)	/* Puts a String to UART */
{
 char c;
 int i,len;
 
  len = strlen(Name2);
	
 for (i=0; i<len; i++) 	/* go through string */
  {
	c=(Name2[i]);			/* pick char */
	Putch (c);			/* send it out */
  }
}
void delay(void)
{
	int i,j;
	for(i=0;i<=5;i++)
		for(j=0;j<=32760;j++);
}
/******************************************************************************/
void main(void)
{
    /* initialize UART */
	unsigned char i;
	InitUart();
    DDR2 = 0xff;			/* set PORT2 output*/
    PDR2 = 0x00;
    delay();
    PDR2 = 0xff;
    delay();
    PDR2_P20=0;
    delay();
    PDR2_P21=0;
    delay();
    PDR2_P22=0;
    delay();
    PDR2_P23=0;
    delay();
    PDR2_P24=0;
    delay();
    PDR2_P25=0;
    delay();
    PDR2_P26=0;
    delay();
    PDR2_P27=0;
    delay();
    PDR2 = 0x55;
    delay();
    PDR2 = 0xaa;
    delay();
    PDR2 = 0xff;
    
    /* Output welcome string */
	Putch(10);
	Puts(welcome);
	Putch(10);
	Putch(13);
	Puts(txq);
	Putch(10);
	Putch(13);
	Puts(typechar);
    Putch(10);
    Putch(13);

	/* Echo received characters */
	while(1)		
	{
		ch = Getch();
		PDR2 = ~ch;
		Putch(ch);
		if (ch==13)	
			Putch(10);
	}
}

⌨️ 快捷键说明

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