搜索
bottom↓
回复: 2

各位大虾,看一下偶的串口通信程序呢,哪边不对啊,多谢指导啊!!

[复制链接]

出0入0汤圆

发表于 2005-11-2 19:13:33 | 显示全部楼层 |阅读模式
ATmega16与PC串口通信的程序,哪边有错啊,我刚用C编程序。

#include <iom16v.h>

#include <macros.h>





//#define fosc 8000000

//#define baud 9600

#define BUFF_SIZE  64



unsigned char tmpSend;

unsigned char tempRecv;

unsigned char ll_buffer[BUFF_SIZE];//设置数据缓冲区

unsigned char input=0;//缓冲区读指针

unsigned char output=0;//缓冲区写指针



void UART_init        (void);

void UART_rx          (void);

void UART_tx          (void);



//缓冲区使用软件模拟FIFO

void put_llbuff(unsigned char c )//送数据到缓冲区

{

  ll_buffer[input]=c;

  if(input<(BUFF_SIZE-1))

      input++;

  else

      input=0;

}



unsigned char get_char(void)//从缓冲区取数据

{

   unsigned char temp;

   if(output==input)

   return 0;

   else

       {

           temp=ll_buffer[output];

           if(output<(BUFF_SIZE-1))

                  output++;

            else

                     output=0;

                return temp;

           }

}





//用中断方式处理UART收发

#pragma interrupt_handler UART_rx: iv_USART_RX

void UART_rx(void)//UART接收中断

{     tempRecv = UDR;//UDR收到数据

}



#pragma interrupt_handler UART_tx: iv_USART_TX

void UART_tx(void)//UART发送完成中断  

{

     UDR = tmpSend;//数据传送

}

   



//UART初始化

void UART_init(void)

  {

     UCSRB = BIT(RXCIE)| BIT(RXEN) |BIT(TXEN);  //允许串口发送和接收,并响应接收完成中断

     UBRR = 51;//设置串口波特率为9600

     //UBRRL = (fosc/16/(baud+1))%256;

     //UBRRH = (fosc/16/(baud+1))/256;

     UCSRC = BIT(URSEL)|BIT(UCSZ1)|BIT(UCSZ0);//帧结构为8位数据+1位stop位

          

  }

  

void main(void)

  {

     

     DDRB  = 0B11111111;//初始化端口

     PORTB = 0B00000000;

     DDRC  = 0B11111111;

     PORTB = 0B00000000;

     DDRD  = 0B11111111;

     PORTB = 0B00000000;



     UART_init();

     put_llbuff(55);

     UART_rx();//发送55,以便示波器检测

     UART_tx();

     get_char();//接收数据

         

   }

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2005-11-2 21:04:56 | 显示全部楼层
程序没有形成循环呀

出0入0汤圆

发表于 2013-4-11 19:04:28 | 显示全部楼层
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 03:21

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表