3442|2

447

帖子

0

TA的资源

纯净的硅(中级)

楼主
 

UART 中断 [复制链接]

 while (!(UCA1IFG&UCTXIFG));
         UCA1TXBUF=UCA1RXBUF;
         P5OUT |=BIT5;
         for(n=0;n<100;n++)
           {Delay();}
         P5OUT &=~BIT5;
    break;

     这是5438自发自收的中断程序,串口自动发送1个字节的数据,程序运行没问题,可是发送2个字节的数据,MCU就接收不到了,串口助手上要么显示PC接收到乱码要么接收不到数据,在IAR中查看UCA1RXBUF和UCA1TXBUF,里面只有第一个数据,没有第二个数据。

     只有用一个数组将收到的2个数据存储后再赋给UCA1TXBUF才能实现2个数据的收发,不知道这是什么情况,请高手讲解一下

最新回复

UCA1RXBUF和UCA1TXBUF寄存器只有8bit大小,一次只能保存一个字节,所以当你要发送多个字节或一句话时,先将上面的程序做成一个Send_char()的函数,即发送单字符的函数,循环调用就好了。[attach]84764[/attach] 还有你的break;不清楚是干什么的。  详情 回复 发表于 2012-4-2 13:38
 
点赞 关注

回复
举报

2002

帖子

24

TA的资源

五彩晶圆(高级)

沙发
 
UCA1RXBUF和UCA1TXBUF寄存器只有8bit大小,一次只能保存一个字节,所以当你要发送多个字节或一句话时,先将上面的程序做成一个Send_char()的函数,即发送单字符的函数,循环调用就好了。

 还有你的break;不清楚是干什么的。
 
 

回复

447

帖子

0

TA的资源

纯净的硅(中级)

板凳
 

上面的程序是中断case2里的程序,我理解的是接收一个字节就触发一次中断,相当于调用一次上面的程序,不清楚为什么接收不到多个字节

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表