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

发布者:悠闲之旅最新更新时间:2016-10-28 来源: eefocus关键字:mega16  串口测试 手机看文章 扫描二维码
随时随地手机看文章
//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());
 }
}

关键字:mega16  串口测试 引用地址:mega16试验板测试代码1-串口测试程序

上一篇:mega16试验板测试代码2-液晶1602四线显示
下一篇:AVRM16的PCF8563源码

推荐阅读最新更新时间:2024-03-16 15:17

MSP430G2553测试程序(串口程序,定时器模式)
// // // MSP430G2xx3 // ----------------- // /|| XIN|- // | | | // --|RST XOUT|- // | | // | CCI0B/TXD/P1.1|-------- // | | 9600 8N1 // | CCI0A/RXD/P1.2| -
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved