3119|7

74

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

UART功能中的接受数据问题:麻烦了。谢谢 [复制链接]

在串口通信中,TI例程上的程序是进入休眠状态,一旦接受数据,中断执行命令,但是现在在程序运行过程中,现在想要接收的数据与规定的数据进行比较。但是数据还没有接收,直接就进行比较了。郁闷,求助一下。。谢谢了
例程
程序------》休眠-------》中断接收数据------》存放到数组中
现在目的
程序------》等待接收的数据--------》接收数据完毕--------》比较
但是实际上
程序------》直接比较-------》继续     数组中的数据完全就是程序初始化的。

最新回复

你可以试着添加一个标志,当数据接收完成以后标志为1,其他情况标志为0,让在主程序中根据标志位来决定是否比较。   详情 回复 发表于 2011-9-9 14:05
 
点赞 关注

回复
举报

74

帖子

0

TA的资源

一粒金砂(高级)

沙发
 
#pragma vector=USART0RX_VECTOR
__interrupt void usart0_rx (void)
{
  string1[j++] = RXBUF0;
  if (j == 3)
  {
    i = 0;
    j = 0;
    if(string1[1]==0x00)
    {

      tag=1;
    }
    else
    {

      tag=2;
    }
    IE1 ^= URXIE0;
  }
}
这是中断部分的程序,
如何能在主程序中保证等待接收数据完成才到下一步。。麻烦了
 
 

回复

5015

帖子

12

TA的资源

裸片初长成(初级)

板凳
 
IE1 ^= URXIE0;这句代码是想实现什么目的呢?
你如果在中断中关了中断使能,在其他地方你还会再打开吗?
 
 
 

回复

755

帖子

0

TA的资源

五彩晶圆(初级)

4
 

回复 沙发 aahellaa 的帖子

你可以试着添加一个标志,当数据接收完成以后标志为1,其他情况标志为0,让在主程序中根据标志位来决定是否比较。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(高级)

5
 
就是说只接收几个字符,后面就不需要了,所以在这里关掉中断,以后需要了再开。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(高级)

6
 
#include  


void main(void)
{
  int con=1;
  WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog
  P3SEL = 0x30;                             // P3.3,4 = USART0 TXD/RXD

  ME1 |= UTXE0 + URXE0;                     // Enabled USART0 TXD/RXD
  UCTL0 |= CHAR;                            // 8-bit character, SWRST=1
  UTCTL0 |= SSEL0;                          // UCLK = ACLK
  UBR00 = 0x03;                             // 9600 from 1Mhz
  UBR10 = 0x00;                             //
  UMCTL0 = 0x4A;                            // Modulation
  UCTL0 &= ~SWRST;                          // Initialize USART state machine
IE1 |= URXIE0;// + UTXIE0;
// _BIS_SR(LPM3_bits + GIE);   //源程序

/*****修改后的程序******/

_EINT();
  while(1)
  {
   
  }

}

这是主程序,程序没有进入过中断,TI的例程就没问题,主程序不知道该怎么写。。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(高级)

7
 
结贴??目前好像是发送数据有问题,,还在检查中,,好像从调试中发的数据有问题,但是从硬件上直接发就好了,,提示上说是stack达到100%,,有没有关系目前还不知道。。再调一下。。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(高级)

8
 
谢谢了
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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