星光电子技术


首页 -- STC单片机解密-- STC芯片解密-- STC单片机开发-- STC单片机资料 --关于我们
 

mega16试验板测试代码1-串口测试程序

[导读]//uart.h/**********串口端口定义**********/
#define RxD PD0
#define TxD PD1#define baudrate 9600 //波特率
#define F_CPU 8000000UL //定义晶振频率void uart_init(void)
{
/*****RS232口线设置*****/
//uart.h

/**********串口端口定义**********/
#define RxD PD0
#define TxD PD1

#define baudrate 9600 //波特率
#define F_CPU 8000000UL //定义晶振频率

void uart_init(void)
{
/*****RS232口线设置*****/
PORTD|=BIT(RxD)|BIT(TxD);
DDRD&=~BIT(RxD);
DDRD|=BIT(TxD);

/* 设置波特率*/
UBRRL=(F_CPU/baudrate/16-1)%256; //本设置波特率不加倍及U2X=0
UBRRH=(F_CPU/baudrate/16-1)/256;
/* 接收器与发送器使能*/
UCSRB|=BIT(4)|BIT(3);
/*设置传输格式*/
//异步,8位数据,无奇偶校验,一个停止位,无倍速
UCSRC|=BIT(7)|BIT(2)|BIT(1);
}

//串口数据发送,查询方式
void putc(unsigned char c)
{
/* 等待发送缓冲器为空 */
while (!(UCSRA&(1< /* 将数据放入缓冲器,发送数据 */
UDR = c;
}

//串口字符串发送,查询方式
void puts(unsigned char *s)
{
while(*s)
{
putc(*s);
s++;
}
putc('n');
//return 1;
}

//串口数据接收,查询方式
unsigned char getc(void)
{
/* 等待接收数据*/
while (!(UCSRA&(1< /* 从缓冲器中获取并返回数据*/
return UDR;
}

//串口接收数据存储,存储到数组中
void get_s(unsigned char *js,unsigned int num)
{
unsigned int i;
for(i=0;i {
js[i]=getc();//保存数据到数组里面
}
}


//test.c

//ICC-AVR application builder : 2008-11-4 12:34:31
// Target : M16
// Crystal: 8.0000Mhz

#include 
#include 
#include "uart.h"

void main(void)
{
uart_init();
while(1)
{
putc(getc());
}
}
返回顶部


2013-2015 星光电子技术 All Rights Reserved.
如有任何问题和建议请联系:498187676@qq.com

深圳市协同电子有限公司 版权所有

星光电子技术深圳工作室

电话:0755-88820678 QQ: 498187676 地址:深圳市龙岗区南湾街道平吉大道1号建昇大厦B栋1618(李朗软件园对面)
手机:13713820066 联系人:周工

 


站点地图

粤ICP备12084176号-14