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

📄 avrinit.h

📁 M16-ISP串口通讯,新手可以参考本例子进行通讯实验
💻 H
字号:
#define F_CPU 3686400



void USART_Init( unsigned int baud )
{
unsigned int tmp;
/* 设置波特率*/
    tmp= F_CPU/baud/16-1;
    UBRRH = (unsigned char)(tmp>>8);
    UBRRL = (unsigned char)tmp;
/* 接收器与发送器使能*/
    UCSRB = (1<<RXEN)|(1<<TXEN);
/* 设置帧格式: 8 个数据位, 2 个停止位*/
//UCSRC = (1<<URSEL)|(1<<USBS)|(1<<UCSZ0)|(1<<UCSZ1);
/* 设置帧格式: 8 个数据位, 1 个停止位*/
    UCSRC = (1<<URSEL)|(3<<UCSZ0);
}




//下面两个函数直接从数据手册上拷贝过来的

// 数据发送【发送5 到8 位数据位的帧】
void USART_Transmit( unsigned char data )
{
/* 等待发送缓冲器为空 */
    while ( !( UCSRA & (1<<UDRE)) );
/* 将数据放入缓冲器,发送数据 */
    UDR = data;
} 

// 数据接收【以5 到8 个数据位的方式接收数 据帧】
unsigned char USART_Receive( void )
{
/* 等待接收数据*/
    while ( !(UCSRA & (1<<RXC)) );
/* 从缓冲器中获取并返回数据*/
    return UDR;
} 

//连续发送字符
/*
void USART_Transmit_2( void )
{
    while ( !( UCSRA & (1<<UDRE)) );
    UDR = 'H';
    while ( !( UCSRA & (1<<UDRE)) );
    UDR = 'e';
    while ( !( UCSRA & (1<<UDRE)) );
    UDR = 'l';
    while ( !( UCSRA & (1<<UDRE)) );
    UDR = 'l';
    while ( !( UCSRA & (1<<UDRE)) );
    UDR = 'o';
} 
*/

⌨️ 快捷键说明

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