2573|1

3836

帖子

19

TA的资源

纯净的硅(中级)

楼主
 

请教MSP430FR5739串口发送问题 [复制链接]

在Timer0中断里面进行数据发送,1S发送一次数据,代码如下:

//Timer0 Interrupt
#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector = TIMER0_A0_VECTOR
__interrupt void Timer_A (void)
#elif defined(__GNUC__)
void __attribute__ ((interrupt(TIMER0_A0_VECTOR))) Timer_A (void)
#else
#error Compiler not supported!
#endif
{
INT_FLAG = 1;
LED1_BLINK;
curr_timestp ++;
timestap_count ++;
wdt_count ++;
*(time_t*)FRAM_USER_START_ADDR = curr_timestp;
if(OSW_TEST_FLAG)
{
unsigned long temp1 = (osw_times_count * 1.0 / OSW_SWITCH_TIMES) * 100000;
if(osw_process_rate != temp1)
{
PutString("\t");
PutLong(osw_times_count);
PutString("\n");
}
}
}

程序运行后每隔十几个小时就会卡死,卡死在

while (!(UCA1IFG&UCTXIFG));这里,每次都是卡死在PutString函数里面,函数代码如下:

void PutString(char *str)
{
unsigned char temp;
unsigned char i=0;
while((temp = str[i++]) != '\0')
{
while (!(UCA1IFG&UCTXIFG));
UCA1TXBUF = temp;
}
},

定时器初始化函数:

void TimerAInit()
{
TA0CCTL0 = CCIE; // TACCR0 interrupt enabled
TA0CCR0 = 32768;
TA0CTL = TASSEL_1 + MC_1; // SMCLK, UP mode
}串口初始化函数,开了两个串口,目前只有UCA1串口出问题

void UartInit()
{

// Configure UART pins
P2SEL1 |= BIT0 + BIT1 + BIT5 + BIT6;
P2SEL0 &= ~(BIT0 + BIT1 + BIT5 + BIT6);
// Configure UART 0
UCA0CTL1 |= UCSWRST;
UCA0CTL1 = UCSSEL_1; // Set ACLK = 32768 as UCBRCLK
UCA0BR0 = 3; // 9600 baud
UCA0BR1 = 0;
UCA0MCTLW |= 0x5300; // 32768/9600 - INT(32768/9600)=0.41
// UCBRSx value = 0x53 (See UG)
UCA0CTL1 &= ~UCSWRST; // release from reset
UCA0IE |= UCRXIE; // Enable RX interrupt
// Configure UART 1
UCA1CTL1 |= UCSWRST;
UCA1CTL1 = UCSSEL_1; // Set ACLK = 32768 as UCBRCLK
UCA1BR0 = 3; // 9600 baud
UCA1BR1 = 0;
UCA1MCTLW |= 0x5300; // 32768/9600 - INT(32768/9600)=0.41
// UCBRSx value = 0x53 (See UG)
UCA1CTL1 &= ~UCSWRST; // release from reset
UCA1IE |= UCRXIE; // Enable RX interrupt
}

这个发送数据的程序测试了几次都是一段时间后会卡死,求大家帮助

最新回复

在正常运行的十几个小时内,数据发送都是正常的吗?  详情 回复 发表于 2017-2-18 10:39
 
点赞 关注

回复
举报

1976

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 
在正常运行的十几个小时内,数据发送都是正常的吗?
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

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