1838|6

32

帖子

0

TA的资源

一粒金砂(中级)

楼主
 
程序功能:(msp430f149)MCU不停向PC机发送数据,在屏幕上显示三行字符,换行后重复显示0~9字符。问题是:打开串口调试工具,屏幕上并没有显示程序描述的效果。。求大神赐硬件连接图指导
/******************************
------------------------------------------------------





#include  



typedef unsigned char uchar;

typedef unsigned int  uint;



void Delays(void);

void PutString(uchar *ptr);

uchar value = 0x39;



/********************主函数**********************/

void main(void)

{

    uchar *tishi = " www.nuist.edu\

                    \n welcome to my class!\

                    \n 0~9 ASCII code as follows:";



    WDTCTL = WDTPW + WDTHOLD;                 // 关闭看门狗定时器

    UCTL0 &= ~SWRST;                          // 初始化UART0状态机

    P3SEL |= 0x30;                            // P3.4,5选择为UART收发端口   00110000

    UCTL0 |= CHAR;                            // 8-bit character

    UTCTL0 |= SSEL0;                          // UCLK = ACLK  32768Hz

    UBR00 = 0x0D;                             // 32k/2400 - 13.65

    UBR10 = 0x00;                             // 高位表示整数分频?,0x000D=13

    UMCTL0 = 0x6B;                            // Modulation, 0110 1011

    IE1 |= URXIE0;                            // 使能接收中断

    _EINT();                                  //开全局中断

    ME1 |= UTXE0 + URXE0;                     // 使能USART0收发

    PutString(tishi);                        //循环的外围的字符串的发送

    while(1)

    {     

        while (!(IFG1 & UTXIFG0));     //查询到如果没有完成就继续等待

        TXBUF0 = value--;             //0~9 增加显示哦!                        



        while (!(IFG1 & UTXIFG0));

         TXBUF0 = '\n';      //换行,下一面一句是同一行空格

        //TXBUF0 = 0x20;       //注意区别换行和同一行空一格显示方式

        Delays();

        if(value==0x2f)       //显示到9后返回重新显示0

          value=0x39;         

    }

}

/*******************************************

函数名称:PutSting

功    能:向PC机发送字符串

参    数:无

返回值  :无

********************************************/

void PutString(uchar *ptr)

{

      while(*ptr != '\0')                             //判断待发数据的开始

      {

            while (!(IFG1 & UTXIFG0));              // TX缓存空闲?空闲就发,否则等待哦

            TXBUF0 = *ptr++;                       // 发送数据,指针

      }

      while (!(IFG1 & UTXIFG0));

      TXBUF0 = '\n';                        //换行啊,也可以空格的,那就一行显示

}

/*******************************************

函数名称:Delays

功    能:延时一会

参    数:无

返回值  :无

********************************************/

void Delays(void)

{

    uchar i=20;

    uint j;



    while(i--)

    {

            j=2000;

            while(j--);

    }

}




最新回复

  详情 回复 发表于 2015-8-16 15:21
 
点赞 关注(1)

回复
举报

1291

帖子

0

TA的资源

纯净的硅(中级)

沙发
 
打断点看看,程序有没有卡死在某些地方,没有,就是你的配置代码有问题
 
 

回复

32

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
蒽,问题解决了,谢谢。把要发送的数据放到数组里,直接发送就收到了

点评

不错,自己也能解决问题了  详情 回复 发表于 2015-8-10 21:54
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

4
 
菜鸟12号 发表于 2015-8-10 13:32
蒽,问题解决了,谢谢。把要发送的数据放到数组里,直接发送就收到了

楼主把程序晒出来呗,我也在此卡住了。
 
 
 

回复

32

帖子

0

TA的资源

一粒金砂(中级)

5
 
void Data_do(uint temp_d)
{  uchar buffer[5];//设发送数组
  buffer[4]='\0';
  uint w;
  uint temp_1,temp_2;
  A1=temp_d/1000;                       //分出千,百,十,和个位
  temp_1=temp_d%1000;
  A2=temp_1/100;
  temp_2=temp_1%100;
  A3=temp_2/10;
  A4=temp_2%10;
buffer[3] = A4;
buffer[2] = A3;
buffer[1] = A2;
buffer[0]=A1;
for(w = 0; w < 4; w++)
   buffer[w]+= 0x30;
PutString(buffer);
}
你把电压数据处理部分换一下就可以了
 
 
 

回复

1291

帖子

0

TA的资源

纯净的硅(中级)

6
 
菜鸟12号 发表于 2015-8-10 13:32
蒽,问题解决了,谢谢。把要发送的数据放到数组里,直接发送就收到了

不错,自己也能解决问题了
 
 
 

回复

7

帖子

0

TA的资源

一粒金砂(初级)

7
 
 
 
 

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

随便看看
查找数据手册?

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