我想要
单片机在接收到一个数据时返回一个字符A,发现无论如何都实现不了,大家帮忙看看程序有么有问题,而且我还想在主函数中处理一些其他的问题,比如点亮一盏灯,发现都实现不了,大家帮忙看看什么问题,哪里出错了,要怎么弄,谢谢
#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)); //发送寄存器空的时候发送数据
U0TXBUF = data;
IFG1&=~UTXIFG0;
}
//*************************************************************************
// 处理来自串口 0 的接收中断
//*************************************************************************
#pragma vector=UART0RX_VECTOR
__interrupt void UART0_RX_ISR(void)
{
data = U0RXBUF; //接收到的数据存起来
n=1;
Send_Byte('A'); //将接收到的数据再发送出去
}
//*************************************************************************
// 处理来自串口 0 的发送中断,预留
//*************************************************************************
//#pragma vector=UART0TX_VECTOR
//__interrupt void UART0_TX_ISR(void)
//{
//}
//*************************************************************************
// 主函数
//*************************************************************************
void main(void)
{
WDT_Init(); //看门狗设置
Clock_Init(); //系统时钟设置
UART_Init(); //串口设置初始化
_EINT(); //开中断
while(1) //无限循环
{
if(n==1){
Send_Byte('A');
n=0;
}
}
}
11# liumsde 发表于 8 秒前
很不错的程序,我就编不出来。sorry 这个不是故意的
一周热门 更多>