导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→关于ATMEGA162的双串口[guest]

 *第25871篇: 关于ATMEGA162的双串口

  
楼 主:guest 2004年9月17日17:24
 关于ATMEGA162的双串口
我用ATMEGA162的双串口,单独用其中的一个没问题,可是一起用就不工作了,不知道是哪里不对劲?
  
2楼:Love单片机 2004年9月18日14:35
 程序!?
请你把程序贴出来,我看看。我刚用161做了一个双串口的项目,已经成功了。
  
3楼:乱码 2004年9月18日15:23
 老大看了没有啊,我在等着呢
老大看了没有啊,我在等着呢
  
4楼:guest 2004年9月18日15:02
 程序在这,请指教[原创]
//串口初始化程序 中断方式 ICC AVR 编译通过 

#pragma interrupt_handler USART0_Interrupt_R:20 
#pragma interrupt_handler USART0_Interrupt_T:24 
#pragma interrupt_handler USART1_Interrupt_R:21 
#pragma interrupt_handler USART1_Interrupt_T:25 

//串口0 
void USART0_Init(void) 

 UBRR0H = 0x00; 
 UBRR0L = 0x2f; //set baud rate =9600KBPS 
 UCSR0C|= 0x8e; // 1 stop bits,8 bits data 
 UCSR0A = 0x00; // 
 UCSR0B = 0xF8;//MY_UCSR0B; // 
  

//串口1 
void USART1_Init(void) 

 ACSR |= ( 1   <  < ACD );//这一行是想关闭模拟比较器,不知道有没有这个必要 
 UBRR1H = 0x00; 
 UBRR1L = 0x2f; //set baud rate =9600KBPS 
 UCSR1C|= 0x8e; //1 stop bits,8 bits data 
 UCSR1A = 0x00; //disable 
 UCSR1B = 0xF8;//MY_UCSR1B; //disable 
  

void USART0_Interrupt_T( void )//Usart0发送 

//略 

void USART0_Interrupt_R( void )//Usart0接收 

//略 

void USART1_Interrupt_T( void )//Usart1发送 

//略 

void USART1_Interrupt_R( void )//Usart1接收 

//略 

本来usart0和usart1的初始化和中断函数都是放在两个头文件里的,单独使用其中的一个是没有问题的,但是将两个头文件全部加近来,编译通过,但是在单片机运行是,收发都没有反映,好像根本没有引起中断。我也是过将两个头文件合并成一个头文件,两个串口一起初始化(我想其实是一样的)结果一样,还是不行。 

  
5楼:Love单片机 2004年9月20日10:01
 分析一下
UCSR1B = 0xF8; 那么UDRIE在一开始就被置高,程序不是会马上就进入中断了吗?

>>>>>>对该主题发表你的看法

本主题贴数5,分页: [第1页]


[上一篇主题]:请大家推荐一款能接DSP的TFT液晶控制器和相应液晶屏的型号

[下一篇主题]:求助