📄 m16串口通信.c
字号:
//-----------------------------------------------------------
//程序由AVR辅助开发工具V2.0.0自动生成
//MCU系统的处理器为: ATMega16
//MCU系统的晶振频率: 8.0000 Mhz
//-----------------------------------------------------------
#include <avr/io.h>
/* AVR-ARM开发网论坛 */
/* http://www.avrarm.com */
/* MCU串口测试程序 */
/*--------------------------------------------------*/
/* 程序由AVR串口开发工具V2.0.0自动生成 */
/* MCU系统的处理器为: ATMega16 */
/* MCU系统的晶振频率: 8.0000 Mhz */
/*--------------------------------------------------*/
//-----------------------------------------------------------
//串口初始化子程序
//字符长度:8位
//奇偶校验:禁止
//通讯模式:异步
//-----------------------------------------------------------
void Uart_Init(void)
{
UCSRB = 0x00; //disable while setting baud rate
UCSRA = 0x00; //Bit1为1则倍速发送
UCSRC = 0x86;
UBRRL = 0x33; //波特率:9600 Bps
UBRRH = 0x00; //误差率:0.156%
UCSRB = 0x18;
}
//-----------------------------------------------------------
//串口接收字节子程序
//-----------------------------------------------------------
unsigned char Getchar(void)
{
while(!(UCSRA& (1<<RXC)));
return UDR;
}
//-----------------------------------------------------------
//串口发送字节子程序
//-----------------------------------------------------------
void Putchar(unsigned char c)
{
while (!(UCSRA&(1<<UDRE)));
UDR=c;
}
//-----------------------------------------------------------
//串口发送字符串子程序
//-----------------------------------------------------------
void Putstr(char *s)
{
while (*s)
{
Putchar(*s);
s++;
}
}
//-----------------------------------------------------------
//串口发送字符串子程序(带有换行符)
//-----------------------------------------------------------
void Puts(char *s)
{
while (*s)
{
Putchar(*s);
s++;
}
Putchar(0x0a); //回车换行
Putchar(0x0d);
}
//-----------------------------------------------------------
//主函数
//-----------------------------------------------------------
void main(void)
{
unsigned char i=0;
Uart_Init();
Puts("AVR-ARM RS232 TEST CODE");
Puts("Http://www.avrarm.com");
Puts("ATMega16 UART TEST");
Putchar(0x0a);
Putchar(0x0d);
while(1)
{
i=Getchar();
if (i!=0) //发送0x0F开始测试
{
i=0;
Puts("AVR-ARM RS232 TEST CODE");
Puts("Http://www.avrarm.com");
Puts("ATMega16 UART TEST");
Putchar(0x0a);
Putchar(0x0d);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -