3469|4

5

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

msp430f249简单串口程序,却出错。。。。 [复制链接]

本帖最后由 zyf6095 于 2016-9-5 17:28 编辑

如题,利用串口的接收中断,串口助手发字节我希望返回数组内容abc,但遇到俩问题:1、发送任何内容都不能显示(已全速运行),除非按下复位键。2、按下复位键时返回的内容偶尔是我发送的!!!并不是预设的abc,求大神告知哪里的错误,谢谢
#include "msp430f249.h"
char shuzu[3]="abc";
void ini_uart()
{
    P3SEL|=BIT6+BIT7;     //P3.6,P3.7设置为UART功能(串口我用的A1)
    UCA1CTL1 |= UCSWRST; //复位寄存器设置
    UCA1CTL0 = 0x00;   //关闭奇偶校验(默认奇数校验)
    UCA1CTL1 |= 0x40;//波特率发生器参考时钟设置为ACLK
    UCA1BR0 =0x03;//此行与下一行决定整数部分
    UCA1BR1 =0x00;//
    UCA1MCTL = 0x06;//小数调制与低频(关UCOS16)
    UC1IE |= 0x02;//开串口接收与发送中断
    UCA1CTL1 &= ~UCSWRST;//使能USCI模块

}
void main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  ini_uart();
  _EINT();
  while(1);
}


#pragma vector=USCIAB1RX_VECTOR
__interrupt void uart(void)
{
        char i;         for(i=0;i<3;i++)
        {
            UCA1TXBUF =shuzu;//我的程序里是UCA1TXBUF=shuzu【i】,但网站编辑器显示不了【i】
            while(!(UC1IFG&UCA1TXIFG));
        }

}


最新回复

你的意思是for循环结束后,清UCA1IFG标志位?这个不用吧。我看ti的例程中没有清。 这一部分,我另外一个建议是你看看ti相关你的片子的例程。 说实话,我没有仔细看你的代码。。。但是我总觉得你有哪个地方少了些什么? 还有你确定下你的ACLK到否有如你所想要的值。 其次,就是一定要确认硬件没有问题,包括接法,跳线帽什么的。  详情 回复 发表于 2016-9-5 23:23
 
点赞 关注

回复
举报

5

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
 
 

回复

4177

帖子

9

TA的资源

五彩晶圆(高级)

板凳
 
建议单步调试,看看,然后在单步调试的时候,一边对照user's guide ,一边看寄存器的值,是否和你配置的一样
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

4
 
huaiqiao 发表于 2016-9-5 21:27
建议单步调试,看看,然后在单步调试的时候,一边对照user's guide ,一边看寄存器的值,是否和你配置的一 ...

嗯,谢谢。我已经尝试调试了,发现很神奇的现象,我在for循环结束后加一条指令复位UCA1IFG,再单步运行就可以正常执行。但上来就全速运行还是不行,我以为是串口速度太低的原因,加入延时函数现象依旧。除去手动复位的指令,开启总中断后无法进入while循环。出现Target execution Stop。。。。,醉了

点评

你的意思是for循环结束后,清UCA1IFG标志位?这个不用吧。我看ti的例程中没有清。 这一部分,我另外一个建议是你看看ti相关你的片子的例程。 说实话,我没有仔细看你的代码。。。但是我总觉得你有哪个地方少了些什  详情 回复 发表于 2016-9-5 23:23
 
 
 

回复

4177

帖子

9

TA的资源

五彩晶圆(高级)

5
 
zyf6095 发表于 2016-9-5 21:53
嗯,谢谢。我已经尝试调试了,发现很神奇的现象,我在for循环结束后加一条指令复位UCA1IFG,再单步运行就 ...

你的意思是for循环结束后,清UCA1IFG标志位?这个不用吧。我看ti的例程中没有清。
这一部分,我另外一个建议是你看看ti相关你的片子的例程。
说实话,我没有仔细看你的代码。。。但是我总觉得你有哪个地方少了些什么?
还有你确定下你的ACLK到否有如你所想要的值。
其次,就是一定要确认硬件没有问题,包括接法,跳线帽什么的。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

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