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

📄 uart.c

📁 FATFS(10.4).rar
💻 C
字号:
#include"config.h"

uint8_t  ASCLL_1[16]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44,0x45,0x46};


void USART_Init(void)
{
	/*设置波特率*/
	UBRRH = 0;
	UBRRL = 3;/*设置波特率,16M晶振,256000波特率,参考DataSheet*/		
	//UBRRH = (((F_CPU/BAUD)/16)-1)/256;
	//UBRRL = (((F_CPU/BAUD)/16)-1)%256;	
	UCSRB |= (1<<RXEN)|(1<<TXEN)|(1<<RXCIE); //使能发送,接收,接收完成中断	
}
void USART_Send_Char(unsigned char data)
{	
	while( !(UCSRA & (1<<UDRE)));	//等待发送缓冲器为空	
	UDR = data;	//将数据放入缓冲区,发送数据
}
void USART_Send_Str(char *str)
{
	while(*str!='\0')
	{
		USART_Send_Char(*str);
		str++;
	}	
}

void uart_send_4byte( uint32_t data )//发送一个无符号长整型的数据,并在串口调试助手上能以十进制显示
{
    char temp[20];				//字符串位数最大21位
    uint8_t i=0;	
    if(data == 0)
    {
     USART_Send_Char(0 + '0');    //'0' 等同于 0x30		
    }
    else
    {
     while(data)
     {
     temp[i++] = data%10;		
     data /= 10;
     }
    for( ;i>0;i--)
     {
     USART_Send_Char(temp[i-1] + '0');    //'0' 等同于 0x30	
     }
    }
}
void send_1byte_hex(uint8_t data1)    //发送到串口调试助手,以十六进制的形式显示
{
  unsigned char  i=0,j=0;
  i=data1/16;    //取高半字节
  j=data1%16;    //取低半字节
  USART_Send_Char(ASCLL_1[i]);
  USART_Send_Char(ASCLL_1[j]);	
}
void uart_send_Enter()
{
  USART_Send_Char('\r');
  USART_Send_Char('\n');
}

void send_buf_hex(UINT8 *Buffer)     //将缓冲区的数据通过串口发送到电脑
{//(十六进制显示)
  uint16_t k=0;
  for(k=0;k<512;k++)
  {
    if(k%16==0)
	USART_Send_Str("\r\n");
    send_1byte_hex(Buffer[k]);
    USART_Send_Char(' ');
  }
  USART_Send_Str("\r\n");
}
void send_buf(UINT8 *Buffer)     //将缓冲区的数据通过串口发送到电脑
{
  uint16_t k=0;
  for(k=0;k<512;k++)
  {
    USART_Send_Char(Buffer[k]);
  }
}

⌨️ 快捷键说明

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