9148|14

71

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

【求助】急急急啊,串口接收中断 [复制链接]

各位好啊,我现在编了一个串口接收程序,但接收不到东西啊,请大家看看问题出在哪好吗,以下是我的程序,就通过串口精灵发送一个数到data,都接收不到,波特率肯定是正确的,不知问题出在哪了,先谢谢各位!


#include "msp430x44x.h"

void Init_UART0(void);
char Data[6]="123456";
char data;
void Init_UART0(void)
{
UCTL0|=SWRST; //SWRST复位,USART允许
UCTL0|=CHAR; //8位数据位,1位停止位,无校验
FLL_CTL0 |= XCAP14PF; // Configure load caps
UTCTL0 = SSEL1; // UCLK = SMCLK
UBR00 = 0x6D; // 1MHz 9600
UBR10 = 0x00; // 1MHz 9600
UMCTL0 = 0x00; // no modulation

ME1 |= UTXE0 + URXE0; // Ena××e USART0 TXD/RXD
IE1 |= URXIE0; // Ena××e USART0 RX interrupt
UCTL0&=~SWRST;
P2SEL |= 0x30; // P2.4,5 = USART0 TXD/RXD
P2DIR |= 0x10; // P2.4 output direction
_EINT();

}

void main(void)
{
WDTCTL = WDTPW + WDTHOLD;
Init_UART0();
for (;;)
{
_BIS_SR(CPUOFF); // Enter LPM0
_NOP(); // Required only for C-spy
}
}

#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx (void)
{
while ((IFG1 & URXIFG0) == 0); // USART0 TX buffer ready?
data = RXBUF0; // RXBUF0 to TXBUF0
}

最新回复

如果发送端口没有搞错,你检查硬件吧,软件没有什么问题。   详情 回复 发表于 2006-4-21 16:13
 
点赞 关注

回复
举报

63

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
各路大侠帮帮忙啊,谢了!
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
请问你是用什么调试的啊?
用仿真器仿真?
 
 
 

回复

99

帖子

0

TA的资源

一粒金砂(中级)

4
 
UART0初始化做如下修改试试:

void Init_UART0(void)
{

FLL_CTL0 |= XCAP14PF; // Configure load caps
UTCTL0 = SSEL1; // UCLK = SMCLK
UBR00 = 0x6D; // 1MHz 9600
UBR10 = 0x00; // 1MHz 9600
UMCTL0 = 0x10; //

UCTL0 =CHAR; //8位数据位,1位停止位,无校验

ME1 |= UTXE0 + URXE0; // Ena××e USART0 TXD/RXD
IE1 |= URXIE0; // Ena××e USART0 RX interrupt

P2SEL |= 0x30; // P2.4,5 = USART0 TXD/RXD
P2DIR |= 0x10; // P2.4 output direction
_EINT();

}
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

5
 
我就是直接用开发办硬件仿真调试啊。
多谢,可还是不行呵,都进不了接收中断程序,我在中断程序中设了一个断点,根本就不能运行到中断程序里面。
问题会出在哪呢?郁闷中ing……
各位多提宝贵经验阿,谢谢!
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用:

我就是直接用开发办硬件仿真调试啊。
多谢,可还是不行呵,都进不了接收中断程序,我在中断程序中设了一个断点,根本就不能运行到中断程序里面。
问题会出在哪呢?郁闷中ing……
各位多提宝贵经验阿,谢谢!
你用的是哪一款开发板?lierda的F449开发箱(有两个232通讯口的)可以构成“自发自收”工作状态,看能否进入接收中断。
如果只有一个232口,也可以将RS-232口的2、3脚短接构成“自发自收”工作状态,看能否进入接收中断。
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

7
 
我用了上面改过的UART0初始化程序,调通了!!!非常感谢!!!!今后请多多指教!!!谢谢!
 
 
 

回复

96

帖子

0

TA的资源

一粒金砂(初级)

8
 
恭喜恭喜!
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

9
 
又有问题了,就是用了改过的UART0初始化程序,可以接收,但不能发送,用我一开始那个UART0初始化程序,能发送,但不能接收,这是怎么回事啊?请指教,谢谢!
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

10
 
请帮忙,谢谢!
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

11
 
引用:

请帮忙,谢谢!
你的发送程序是什么样的?帖出来才好分析。初始化程序对发送应该没有什么影响。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

12
 
#include "msp430x44x.h"

void Init_UART0(void);
char data;
char Data[6]="123456";

void Init_UART0(void)
{
//UCTL1|=SWRST;
FLL_CTL0 |= XCAP14PF; // Configure load caps
UTCTL0 = SSEL1; // UCLK = SMCLK
UBR00 = 0x6D; // 1MHz 9600
UBR10 = 0x00; // 1MHz 9600
UMCTL0 = 0x10;
UCTL0 =CHAR; //8位数据位,1位停止位,无校验
ME1 |= UTXE0 + URXE0; // Ena××e USART0 TXD/RXD
IE1 |= URXIE0; // Ena××e USART0 RX interrupt

P2SEL |= 0x30; // P2.4,5 = USART0 TXD/RXD
P2DIR |= 0x10; // P2.4 output direction
_EINT();
}



void main(void)
{
WDTCTL = WDTPW + WDTHOLD;

Init_UART0();

for(i=0;i<6;i++) //循环发送字符串及结束0
{
TXBUF1=Data[i];
while((UTCTL1&0x01)==0);
}

while(1);

}

#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx (void)
{
while ((IFG1 & URXIFG0) == 1);
data = RXBUF0;
}


我就是主动发送了
是这样的,我用串口0的时侯,一开始用我自己那个串口0初始化程序,可以发送一串字符‘123456’到pc机中,但是不能接收,后来改为用你说的那个串口0初始化程序,也就是去掉了UCTL1|=SWRST; UCTL1&=~SWRST;这两条指令,就可以进行串口接收中断,在接收缓存中可以看到有PC机的串口精灵发送过来的数据,但此时不能发送。这个我说的是串口0。

如果把串口0初始化程序,改为用串口1,就不管用不用UCTL1|=SWRST; UCTL1&=~SWRST;这两条指令都不能接收了。

好奇怪啊!帮忙看看,谢谢!
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

13
 
当然发不出去数据!你在UART0收数据,发数据却在UART1!
TXBUF1=Data[i];
while((UTCTL1&0x01)==0);

改为如下:
TXBUF0=Data[i];
while((UTCTL0 & 0x01)==0);
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

14
 
哦,是我贴错了,我写的就是TXBUF0=Data[i];
while((UTCTL0 & 0x01)==0);
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

15
 
如果发送端口没有搞错,你检查硬件吧,软件没有什么问题。

 
 
 

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

随便看看
查找数据手册?

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