4713|8

92

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

串口的问题麻烦高人了 [复制链接]

#include <msp430x14x.h>

void main(void)
{
unsigned int i;
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P5DIR |= 0x70; // P5.4 ,5.5 5.6 output direction
P5SEL|= 0x70; // P5.4 = MCLK option select;5.5=SMCLK;5.6=ACLK;
BCSCTL1 &= ~XT2OFF; // XT2 = HF XTAL

do
{
IFG1 &= ~OFIFG; // Clear OSCFault flag
for (i = 0xFF; i > 0; i--); // Time for flag to set
}
while ((IFG1 & OFIFG) != 0); // OSCFault flag still set?
BCSCTL2|=(SELM1+SELS); //MCLK=XT2CLK SMCLK=XT2CLK

UCTL0 = CHAR; // 8-bit character
UTCTL0 =SSEL1+SSEL0; //UCLK=SMCLK;


//BCSCTL2 |= SELM1; // MCLK = XT2 (safe)

//UCTL0 &=~ SWRST; // reset SWRST bit
//UTCTL0 = SSEL0; // UCLK = ACLK
UCTL0 = 0x10; //8 data bits, even parity, 1 stop bit
UBR00 = 0x41;
UBR01= 0x3;
//UBR10 = 0x00;
UMCTL0 = 0x03; //BDR=9600 ,8 M jingzhen

URCTL0= 0x00;



ME1 |= UTXE0 + URXE0; // Ena××e USART0 TXD/RXD
//IE1 |= URXIE0; // Ena××e USART0 RX interrupt
P3SEL |= 0x30; // P3.4,5 = USART0 TXD/RXD
P3DIR |= 0x10; // P3.4 output direction
while(1)
{
TXBUF0=0x6f;

while ((IFG1 & UTXIFG0) == 0); // USART0 TX buffer ready?
for (i = 0xAFF; i > 0; i--);
}

}
这是我的程序 ,现在的问题是无论发什么都布是我要得到的结果
刚开始的时候还出现过正常的结果,可是后来出现的结果都是莫名其妙的,用示波器看刀232的管脚输出是对的,经过串口传输线输出也是对的,可是刀了机器上就布对,换了机器还是一样,还了串口调试工具结果还是一样,布知道是什么原因,高手赐教啊

最新回复

请问楼上的兄弟你的调通的时候还是用上面的程序吗? 还是有什么地方改变?谢谢!  详情 回复 发表于 2004-9-9 21:27
 
点赞 关注

回复
举报

63

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
串口调试工具的波特率是否对?
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
是对的,可是现在出现的问题是无论我发什么。收到的都全部是00
不知道是什么原因啊,高手赐教啊
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

4
 
校验位???
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

5
 
现在的问题是这样的,我对程序的波特率重新作了调整,可是用示波器看232的输出信号,信号的波形是对的
但是波特率不受我改变的控制,我明显的修改了UBR00
UBR01

UMCTL0

URCTL0
这样几个参数,可是示波器显示我发送的信号的波特率并没有作出相应的改变
高人赐教
生死就在最近这几天了
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

6
 
沉住气,先把问题说清楚。

用示波器看232的输出信号,信号的波形是对的?
但是波特率不受我改变的控制

有点矛盾
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

7
 
如果你用示波器测量的信号时间,电平都没有问题(与理论完全一样)就不是单片机的问题,如果不一样就看程序吧。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

8
 
现在问题解决,可是在开始的时候可以完全正确的接受到数据,可是一旦停止串口后再重新打开串口后接受到的数据就错了只有连续的开关几次才可以正确的接受到数据,好像数据再关闭串口的时候存到了缓存里面,这是再次读串口,可能是积存的数据导致度错,那如果是这样要怎么处理才可以保证每次接受到的都是正确的数据呢
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

9
 
请问楼上的兄弟你的调通的时候还是用上面的程序吗?
还是有什么地方改变?谢谢!
 
 
 

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

随便看看
查找数据手册?

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