?? 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 + -