lyxer 发表于 2006-1-24 20:13:33

有atmega162的双串口程序么?

我这里涉及到一个东西,需要把从串口1收到的数据从串口2发到计算机,反之,把从计算机发到串口2的数据发送到串口1。有人能够帮我么?有没有这样的例子?



计算机<=====串口2<========串口1

计算机=====>串口2========>串口1

erkin 发表于 2006-1-24 20:19:49

具体的程序很简单。

协议自己定。

#pragma interrupt_handler uart1_tx_isr:33

void uart1_tx_isr(void)

{

i++;

if (transmit_to_card==0xff) {transmit_to_card_flag=0;return;};

while (!(UCSR1A&(1<<UDRE1)));

UDR1=transmit_to_card; //character has been transmitted

}



UDR1=0x09;

while (!(UCSR1A&(1<<UDRE1)));

{};

while (transmit_to_card_flag)

{};

在中断里送数,自己看着弄吧,不难。

#pragma interrupt_handler uart1_rx_isr:31

void uart1_rx_isr(void)

{

while(!(UCSR1A& (1<<RXC1)));

receive_from_card=UDR1;//uart has received a character in UDR

if (receive_from_card==0x09) {i=0x00;receive_from_card=0x09;}

if (receive_from_card==0x0d) receive_from_card_flag=0x00;

i++;

}

这是我的程序,肯定是通的,你拿去修改一下吧。

lyxer 发表于 2006-1-24 20:45:39

谢谢,不过我要求的是实时实现,要求



计算机<=====串口2<========串口1

计算机=====>串口2========>串口1





要求把串口1收到的数据立即都发送到串口2,同时串口2收到的数据立即发送到串口1。



谢谢了!

千恩万谢!

igoal 发表于 2006-1-25 11:07:57

真不明白这个东西要单片机有什么用,如果不用单片机进行数据处理,两个串口间加个光藕就好了。

jack 发表于 2008-4-24 15:23:23

erkin ,高手!

jack 发表于 2008-4-24 15:25:30

http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_259805.JPG
(原文件名:Atmega162-2URATR -DATA.JPG)


系统工程这样时就需要双通讯口.

lyxer 你的要求呢? 发过来看看!

penguin 发表于 2008-6-25 04:19:18

学习了

nico_jj 发表于 2013-4-11 18:00:35

{:shutup:}{:huffy:}
页: [1]
查看完整版本: 有atmega162的双串口程序么?