永发信息网

MSP430 异步通信接收字符串

答案:1  悬赏:50  手机版
解决时间 2021-11-09 08:55
MSP430 异步通信接收字符串
最佳答案
void Clock_Init()
{
uchar i;
BCSCTL1&=~XT2OFF; //打开XT振荡器
BCSCTL2|=SELM1+SELS; //MCLK为8MHZ,SMCLK为8MHZ
do{
IFG1&=~OFIFG; //清除震荡标志
for(i=0;i<100;i++)
_NOP(); //延时等待
}
while((IFG1&OFIFG)!=0); //如果标志为1,则继续循环等待
IFG1&=~OFIFG;
}
//*************************************************************************
// MSP430内部看门狗初始化
//*************************************************************************
void WDT_Init()
{
WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
}

//*************************************************************************
// MSP430串口初始化
//*************************************************************************
void UART_Init()
{
U0CTL|=SWRST; //复位SWRST
U0CTL|=CHAR; //8位数据模式
U0TCTL|=SSEL1; //SMCLK为串口时钟
U0BR1=baud_h; //BRCLK=8MHZ,Baud=BRCLK/N
U0BR0=baud_l; //N=UBR+(UxMCTL)/8
U0MCTL=0x00; //微调寄存器为0,波特率9600bps
ME1|=UTXE0; //UART1发送使能
ME1|=URXE0; //UART1接收使能
U0CTL&=~SWRST;
IE1|=URXIE0; //接收中断使能位

P3SEL|= BIT4; //设置IO口为普通I/O模式
P3DIR|= BIT4; //设置IO口方向为输出
P3SEL|= BIT5;
}

//*************************************************************************
// 串口0发送数据函数
//*************************************************************************

void Send_Byte(uchar data)
{
while((IFG1&UTXIFG0)==0); //发送寄存器空的时候发送数据
U0TXBUF=data;
}

void sendstring( unsigned char *bufferchar)
{
while(*bufferchar !='\0')
{
while((IFG1&UTXIFG0)==0); //发送寄存器空的时候发送数据
U0TXBUF=*bufferchar++;
}
}

//*************************************************************************
// 处理来自串口 0 的接收中断
//*************************************************************************

#pragma vector=UART0RX_VECTOR
__interrupt void UART0_RX_ISR(void)
{

data=U0RXBUF; //接收到的数据存起来
sendstring(aaaaa); //将接收到的数据再发送出去

}

//*************************************************************************
// 处理来自串口 0 的发送中断,预留
//*************************************************************************

#pragma vector=UART0TX_VECTOR
__interrupt void UART0_TX_ISR(void)
{

}

//*************************************************************************
// 主函数
//*************************************************************************
void main(void)
{
WDT_Init(); //看门狗设置
Clock_Init(); //系统时钟设置
UART_Init(); //串口设置初始化
_EINT(); //开中断
while(1) //无限循环
{
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
EpiData里保存好了的资料 想修改怎么办?我把
眼晴验光时r代表左还是右
新购商品房出现屋顶出现裂缝怎么办?
纳妾记3杨秋池有没有变成太监
轮台县哈尔巴克乡卫生院地址有知道的么?有点
博湖县才坎诺尔乡卫生院地址在什么地方,想过
一斤酵子相当于多少酵母粉
青海金矿缺氧地方招工
EXCEL2010,我想让一列数字按照123...的顺序
准备去相亲,大家看怎么样
surfice macpro 与ipad相比 高端多少?
上海托鼎建材有限公司怎么样?
哪里有《走进重高》答案
市场调查与预测自考实践课程考试
为什么要用《爱之链》做题目,有什么好处
推荐资讯
4.9乘0.63和7.4乘0.28用列竖式怎么算
用公式证明无论加速还是减速直线运动,在通过
人之将死,其言也善?
怎么给金毛量体温啊
怎麽弄卡通动漫通知栏?
茂名特色小吃芋头五花腩的做法
贵阳周边今天哪里赶场
高一数学基本内容是什么
一片晓烟杨柳绿,满目春色杏花红什么意思
龙猫被粘鼠胶粘了,搞得全身很粘,主要在脸的
硅的电阻大小与温度高低成反比,这是为什么
请你们仔细看看
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?