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

📄 uart.c

📁 fat格式文件的读写操作
💻 C
字号:
/************************************************************/
/*		 UART Code for   AT91SAM7S64						*/
/*				By   pasyong								*/
/*					2006-5									*/
/*				Base IAR 4.30A						*/
/************************************************************/
#include "ioat91sam7s64.h"

#define Bautrate 38400    //在这里设置波特率

void uartinit(void)
{
  *AT91C_PMC_PCER=1<<AT91C_ID_US0;
   //PIO外设功能时钟始能USART0的时钟
   *AT91C_PIOA_PDR=(AT91C_PA5_RXD0|AT91C_PA6_TXD0);
  //PIO使能USART0对应的引脚的外设功能
   *AT91C_PIOA_ASR=(AT91C_PA5_RXD0|AT91C_PA6_TXD0);
   //外设A分配给USART0外设A功能
   *AT91C_US0_CR=(AT91C_US_RXEN |AT91C_US_TXEN);
   //允许接收和发送
   *AT91C_US0_MR=AT91C_US_USMODE_NORMAL |  /* Normal Mode */
                  AT91C_US_CLKS_CLOCK    |  /* Clock = MCK */
                  AT91C_US_CHRL_8_BITS   |  /* 8-bit Data  */
                  AT91C_US_PAR_NONE      |  /* No Parity   */
                  AT91C_US_NBSTOP_1_BIT;    /* 1 Stop Bit  */
    //普通USART模式,主时钟,8字节数据,无效验
     //*AT91C_US0_BRGR=30;					//BARD RATE:38400(CD=30)
    *AT91C_US0_BRGR=48054850/(16*Bautrate);
    //设置波特率
}

unsigned char putchar (unsigned char ch)
{										

  while (!((*AT91C_US0_CSR) & AT91C_US_TXRDY));   // Wait for Empty Tx Buffer
  return (*AT91C_US0_THR = ch);                 // Transmit Character
}

void printf(  unsigned char *s)
{
   while (*s)
    {
      putchar(*s);
      s++;
    }
}


⌨️ 快捷键说明

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