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

📄 main.c

📁 mb90340的串口接收发送小小 程序
💻 C
字号:
/* THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU */
/* MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR */
/* ELIGIBILITY FOR ANY PURPOSES.                                             */
/*                 (C) Fujitsu Microelectronics Europe GmbH                  */
/*---------------------------------------------------------------------------
  MAIN.C
  - description
  - See README.TXT for project description and disclaimer.

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


#include "mb90340.h"

const char welcome[100]="Welcome at FUJITSU ";
unsigned char ch;


void InitUart0(void)
{
  // Initialize UART asynchronous mode
   BGR0 = 1666; //  9600 Baud @ 16MHz
  // BGR0 = 832;  // 19200 Baud @ 16MHz
  // BGR0 = 416;  // 38400 Baud @ 16MHz

  // BGR0 = 2083; //  9600 Baud @ 20MHz
  // BGR0 = 1041; // 19200 Baud @ 20MHz
  // BGR0 = 520;  // 38400 Baud @ 20MHz

  // BGR0 = 2499; //  9600 Baud @ 24MHz
  // BGR0 = 1249; // 19200 Baud @ 24MHz
  // BGR0 = 624;  // 38400 Baud @ 24MHz
   
  SCR0 = 0x17; // 8N1
  SMR0 = 0x0d; // enable SOT3, Reset, normal mode
  SSR0 = 0x00; // LSB first
}

void Putch0(char ch)         /* sends a char */
{
  while (SSR0_TDRE == 0);    /* wait for transmit buffer empty 	*/
  TDR0 = ch;                 /* put ch into buffer			*/
}

unsigned char Getch0(void)     /* Waits for and returns incomming char */
{
  unsigned char rxchar;
  
  for(;;)
  {

    while(SSR0_RDRF == 0)      /* Wait for data received  	           */
    {
      __wait_nop(); 
    }

    rxchar = RDR0;             /* Save receive register                */

    if ((SSR0 & 0xE0) != 0)    /* Check for errors PE, ORE, FRE        */
    {
      SCR0_CRE = 1;            /* Clear error flags 	                 */
    }
    else
    {
      return (rxchar);         /* Return received character            */
    }

  }
  
}


void Puts0(const char *Name2)  /* Puts a String to UART */
{
  int i,len;
 
  len = strlen(Name2);
	
  for (i=0; i<strlen(Name2); i++)   /* go through string                     */
  {
    if (Name2[i] == 10)
      Putch0(13);
    Putch0(Name2[i]);              /* send it out                           */
  }
}


unsigned long l;
unsigned char i;

/******************************************************************************/

void main(void)
{
  InitIrqLevels();
  __set_il(7);                /* allow all levels */
  __EI();                     /* globaly enable interrupts */
    
  /* initialize UART */
  InitUart0();

  /* Output welcome string */
  Puts0("\r");
  Puts0(welcome);

  /* Echo received characters */
  while(1)		
  {
    ch = Getch0();  
    Putch0(ch);    	
    if (ch==13)	
      Putch0(10);
  }
}

⌨️ 快捷键说明

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