我430一打开串口调试,主程序就停了为什么呢
而且每次下载完程序,板子必须关掉重启一下,调试助手才能正常收发,否则收不到,希望大家帮个忙能够解决以下,还有这个串口是232还是485
以下是程序:
#include <msp430x14x.h>
#include "Config.h"
uchar n;
uchar data=0;
//*************************************************************************
// MSP430串口初始化
//*************************************************************************
void UART_Init()
{
U0CTL|=SWRST; //复位SWRST
U0CTL|=CHAR; //8位数据模式
U0TCTL|=SSEL1; //SMCLK为串口时钟
// U0BR1=baud_h; //BRCLK=8MHZ,Baud=BRCLK/N //在config里有设置 提取高位
//U0BR0=baud_l; //N=UBR+(UxMCTL)/8 //在config里有设置 提取低位
//U0MCTL=0x00; //微调寄存器为0,波特率9600bps
U0BR0 = 0x41;//波特率9600
U0BR1 = 0x03; //有串口波特率计算公式的
U0MCTL = 0x00;
ME1|=UTXE0; //UART1发送使能
ME1|=URXE0; //UART1接收使能
U0CTL&=~SWRST;
IE1|=URXIE0; //接收中断使能位
// IE1|=UTXIE0; //发送中断使能位
P3SEL|= BIT4; //设置IO口为外围模式
P3DIR|= BIT4; //设置IO口方向为输出
P3SEL|= BIT5; //看原理图进行设置。。注意有跳
P3DIR&=~ BIT5; //设置IO口方向为输入
}
//*************************************************************************
// 串口0发送数据函数
//*************************************************************************
void Send_Byte(uchar data)
{
while((IFG1&UTXIFG0)!=0X80); //发送寄存器空的时候发送数据
U0TXBUF = data;
}
//*************************************************************************
// 处理来自串口 0 的接收中断
//*************************************************************************
#pragma vector=UART0RX_VECTOR
__interrupt void UART0_RX_ISR(void)
{
data = U0RXBUF; //接收到的数据存起来
Send_Byte(data); //将接收到的数据再发送出去
delay_ms(5); //切换之前先有个小延时
}
//*************************************************************************
// 处理来自串口 0 的发送中断,预留
//*************************************************************************
//#pragma vector=UART0TX_VECTOR
//__interrupt void UART0_TX_ISR(void)
//{
//}
//*************************************************************************
// 主函数
//*************************************************************************
void main(void)
{
WDT_Init(); //看门狗设置
Clock_Init(); //系统时钟设置
UART_Init(); //串口设置初始化
_EINT(); //开中断
P6DIR|= BIT0;
P6OUT&=~ BIT0;
while(1) //无限循环
{
P6OUT^= BIT0;
delay_ms(500);
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
这个开外部晶振了吧,等待PLL稳定了吗?
这样啊,那不是我的原因啊!谢谢哦
一周热门 更多>