搜索
bottom↓
回复: 4

51 串口中断问题?求解,很诡异的问题!

[复制链接]

出0入0汤圆

发表于 2012-7-23 16:01:23 | 显示全部楼层 |阅读模式
请问是怎么回事?下面是我的代码!!
问题:
我用中断发送数据,但每次发送只能发送最后一位要发送的数据,比如
        uart_transmit_byte('A');
        uart_transmit_byte('B');
        uart_transmit_byte('C');
只能将C发送过去,其他的都发布过去,下面是我的代码,(查询方式没有问题)
void uart_init(void)
{
        SCON = 0X50;                                //设置定时器1提供波特率,REN置位,允许接受
        TMOD = 0X20;                                //TIME1工作在模式2,自动重新装载
        //靠…………能不能认真点,0x20写成0x02了,怪不得收不到数据。smod的高四位是定时器1
        TH1 = 0Xf3;
        TL1 = 0Xf3;                                        //波特率在9600bps
        TR1 = 1;                                        //定时器1开始工作
        EA = 1;
        ES = 1;                                                //串口中断允许
}


void uart_interrupt() interrupt 4
{
        unsigned char buf;
        if(TI)
        {
                TI = 0;
        }
        if(RI)
        {
                RI=0;
                buf = uart_receive_byte();
                switch(buf)
                {
                        case '0'://立刻上传数据
                                now=1;
                                break;
                        case '1':
                                DELAY_TIME = 1;
                                break;
                        case '2':
                                DELAY_TIME = 2;
                                break;
                        case '3':
                                DELAY_TIME = 3;
                                break;
                        case '4':
                                DELAY_TIME = 4;
                                break;
                        case '5':
                                DELAY_TIME = 5;
                                break;
                        default:break;               
                }
        }
}

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

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2012-7-24 11:31:47 | 显示全部楼层
没有在中断里发送啊

出0入0汤圆

 楼主| 发表于 2012-7-24 19:40:45 | 显示全部楼层
中断里怎么发送啊。怎么在中断发送,如果再中断发送,发送完又进入中断。再发送,再进入中断,不就没头了啊。兄弟,求指教

出0入0汤圆

发表于 2012-7-24 19:48:39 | 显示全部楼层
51_jiaduoW~W 发表于 2012-7-24 19:40
中断里怎么发送啊。怎么在中断发送,如果再中断发送,发送完又进入中断。再发送,再进入中断,不就没头了啊 ...

那你在哪儿发送,怎么发送的?
发送一般是有起始地址和长度的,发完指定长度就不发了
还有,从发送开始到结束产生中断是要时间的,会先退出中断程序,干点别的,再进来

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-8-26 16:17

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

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