打印
[MCU]

应该没区别吧

[复制链接]
380|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jiajs|  楼主 | 2019-5-17 21:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
两个程序最终理论结果应该没区别吧
为什实际差别这么大?
程序一:
#include "msp430x14x.h"
#include "delay.h"
#define uchar unsigned char
#define uint  unsigned int
uchar const trdata[]={'A','B','C','D','E','F','G','H','I','J','K','L',0x0d,0x0a};
uchar i;
void main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  P3SEL|=0X30;
  ME1|=UTXE0+URXE0;
  UCTL0|=CHAR;
  UTCTL0|=SSEL0;
  UBR10=0X00;
  UBR00=0X03;
  UMCTL0=0X4a;//设置波特率为9600
  UCTL0&=~SWRST;
  IE1|=UTXIE0;
  while(1)
  {
   
    for(i=0;i<14;i++)
    {
      TXBUF0=trdata[i];
      while(!(IFG1&UTXIFG0));
      
    }
   
   //_BIS_SR(LPM3_bits+GIE);
  }
}
#pragma vector=UART0TX_VECTOR
__interrupt void usart0_rx(void)
{
  _BIC_SR_IRQ(LPM3_bits);
}      //结果是自动循环发送。


程序二:
#include "msp430x14x.h"
#include "delay.h"
#define uchar unsigned char
#define uint  unsigned int
uchar const trdata[]={'Z','h','a','n','g','H','U','a','q','i','n','g',0x0d,0x0a,0x00};
uchar i;
void main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  P3SEL|=0X30;
  ME1|=UTXE0+URXE0;
  UCTL0|=CHAR;
  UTCTL0|=SSEL0;
  UBR10=0X00;
  UBR00=0X03;
  UMCTL0=0X4a;//设置波特率为9600
  UCTL0&=~SWRST;
  IE1|=UTXIE0;
  while(1)
  {
   
    while(trdata[i]!=0x00)
    {
      TXBUF0=trdata[i];
      while(!(IFG1&UTXIFG0));
      //IFG1&=~UTXIFG0;
      i++;   
    }
   
   // _BIS_SR(LPM3_bits+GIE);
  }
}
#pragma vector=UART0TX_VECTOR
__interrupt void usart0_rx(void)
{
  _BIC_SR_IRQ(LPM3_bits);
}                 //结果是每按一次复位键,完整的发送一次。

使用特权

评论回复

相关帖子

沙发
zhaoxqi| | 2019-5-17 21:19 | 只看该作者
上面的I应该是局部变量,下面的应该是全局变量

使用特权

评论回复
板凳
jiajs|  楼主 | 2019-5-17 21:21 | 只看该作者
然后呢

使用特权

评论回复
地板
jlyuan| | 2019-5-17 21:25 | 只看该作者
下面的发完后要多I清0啊

使用特权

评论回复
5
lizye| | 2019-5-17 21:29 | 只看该作者

嗯,所以上下理论相差很大,结果相差很大

使用特权

评论回复
6
jiahy| | 2019-5-17 21:34 | 只看该作者
理论上就会相差很大,下面的一个i没有复位,所以当i>14,trdata=0x00的状态持续。就不会再发送了

使用特权

评论回复
7
jiaxw| | 2019-5-17 21:36 | 只看该作者


尽量少用全局变量

使用特权

评论回复
8
zhaoxqi| | 2019-5-17 21:39 | 只看该作者
对的

使用特权

评论回复
9
jiaxw| | 2019-5-17 21:43 | 只看该作者
全局和局部有时会有差别

使用特权

评论回复
10
zhanghqi| | 2019-5-17 21:46 | 只看该作者
变量搞混了?、

使用特权

评论回复
11
zhenykun| | 2019-5-17 21:49 | 只看该作者

有什么差别?

使用特权

评论回复
12
wyjie| | 2019-5-17 23:21 | 只看该作者
你的变量是不是变为0了?

使用特权

评论回复
13
jiajs|  楼主 | 2019-5-17 23:24 | 只看该作者
哦,那我就知道怎么回事了,多谢大家,结贴了哈

使用特权

评论回复
14
functions| | 2019-5-20 20:54 | 只看该作者
变量的适用范围不同,结果就会不同

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

940

主题

11975

帖子

6

粉丝