2539|1

12

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

关于定时A与串口二者应用的问题,求大神帮忙 [复制链接]

我想做的是定时器A每两秒产生一次中断,然后在中断服务程序中用串口发送两个字节的数据,但是现在只能实现发送一个字节的数据,如果改为发送两个字节的数据,就会在发送第二个字节的数据时,表示上一字节发送完成的标志位一直是发送未完成,导致卡在等待第一个字节发送完的语句,请问,这是为什么呢?
定时器A的中断服务程序的长度与时间有什么要求嘛?
我定时器A设定的是采用ACLK,32768HZ,工作在连续计数模式,溢出产生中断~
附部分程序:
#pragma vector = TIMERA1_VECTOR
  __interrupt void TIMER_A (void)
  {
    switch (TAIV)
    {
      case 2: break;
      case 4: break;
      case 10:
      {
        switch (TANUM)
        {
          case 0:UART_PutChar('S');TANUM++;break;
          case 1:UART_PutChar('B');TANUM++;break;
          case 2:UART_PutChar('E');TANUM=0;break;
        }
      }
    }
  }
其中,如果UART_PutChar('S');改为连续的两句,就会卡住~求好心人帮忙啊~~~·~~

最新回复

建议中断里面不要做过多的事情。 可以在中断里面跳出中断,设置发送2个字节的标志位 在程序外发送2个字节后再次进入睡眠模式 或者修改UART_PutChar('B'); 这个函数  详情 回复 发表于 2012-2-24 15:26
 
点赞 关注

回复
举报

2

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
建议中断里面不要做过多的事情。
可以在中断里面跳出中断,设置发送2个字节的标志位
在程序外发送2个字节后再次进入睡眠模式

或者修改UART_PutChar('B'); 这个函数
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表