📄 usart.c
字号:
/******************************************************
*工程名称:Mega16与PC机的串口通信
*创建日期:2007年6月25日
*创 建 人:朱海峰
*修改日期:
*修 改 人:
*版 本 号:
*其 他:QQ:543376422 E-mail:ntzhf100@163.com
* 淘宝网店:http://shop34765428.taobao.com/
*说 明:Mega16与PC机的串口通信
*硬件连接:
PB0~PB3口接4个led灯,将usart的电源开关打在ON上,将PD0,PD1用短路片短路
下载完程序后将串口连接到板子上的窗口上,打开附带光盘中的串口通信
控制LED灯文件夹(先把此文件夹复制到硬盘上),打开串口LED灯控制软件
先将串口打开,然后再点上面的按钮,则板上相应的led将会亮
或者也可以用串口调试软件调试(波特率9600,1个起始位+8个数据位+无校验
+1个停止位),发字符1 2 3 4 5 6 7 8 则可以看到效果,每通信一次mega16
发送一次"I love AVR!"到调试界面
*效 果:
******************************************************/
#include <avr/io.h>
#include "usart.h"
/********************************************/
void USART_init(void)
{
/****波特率初始化*****/
UBRR1H = 0X00;
UBRR1L = 0x2f; //9600@7.3728Mhz
/*****帧结构设定*****/
UCSR1C = (1<<UCSZ11)|(1<<UCSZ10);//异步,无校验,一位停止位,8位数据
/*****使能收发器*****/
UCSR1B = (1<<TXEN1)|(1<<RXEN1);
}
/********************************************/
unsigned char USART_Getchar(void)
{
while(!(UCSR1A & (1<<RXC1)));
return UDR1;
}
/********************************************/
void USART_Putchar(unsigned char send_char)
{
while(!(UCSR1A & (1<<UDRE1)));
UDR1 = send_char;
}
/********************************************/
void USART_Send_string(char *str)
{
while((*str) != '\0')
{
USART_Putchar(*str++);
}
}
/********************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -