📄 main.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 + -