这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » Mega103 Mega103串口的奇怪问题

共2条 1/1 1 跳转至

Mega103 Mega103串口的奇怪问题

院士
2006-09-17 18:14:16     打赏
Mega103 Mega103串口的奇怪问题



关键词: Mega103     串口     奇怪     问题    

院士
2006-12-22 22:43:00     打赏
2楼
问 主程序很简单,但是有个怪问题,只要加上串口发送,程序编写上只发送一次,但是用上位机收到的却是在不停的发,我又在串口发送程序前加上给IO口置0,因为初始化完成后是1,所以如果单片机是在不停的复位的话,IO口应该是01变换,结果也确实如此,而我去掉串口发送就不变。但是我已经禁止了WDT,不明白。
串口程序

UDR = ***;
while(flag==0);
flag = 0;


串口中断程序中置flag为1。 1: 我甚至把程序写成这样都会连着发(icc6.23)#include<iom103.h>
#include<macros.h>

#pragma interrupt_handler rxd_isr:19

unsigned char flag;

void portini(void)
{
     DDRB  = 0xff;
     DDRD  = 0xfF;
     DDRE  = 0xFF;
      
     PORTB = 0xFF;
     PORTD = 0xFF;
     PORTE = 0xFF;
        
     MCUCR = 0x80;
}
void uart(void)
{
         UCR  = 0x00; //disable while setting baud rate
        UBRR = 0x9B; //set baud rate 2400bps
         UCR  = 0x48; //enable
}

void main(void)
{
     unsigned char i,temp;

    uart();        
    portini();
    SEI();
        
    UDR = 85;            
    while(!(flag)) WDR();
    flag = 0;    
}

void rxd_isr(void)
{
      flag = 1;
}     2: 为什么不升级到新版本再试呢? 3: 看错了,是6.25C我用的是6.25C,不是6.23。现在问题似乎已经解决了:我把发送中断关闭就没事了,改用查询发送完成标志字。但不明白为什么会这样,有遇到过类似问题的兄弟吗?以前好像没这种情况啊。 4: 顶要知其然还要知其所以然,所以我顶!

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]