430
串口中断。如果只接受,不发送。而且要对所接受的数据进行分析,
是一串数据怎么办,下面这对吗,求指教谢谢。
void Uart_Init(void)
{
P3SEL |= 0x30; // 选择P3.4和P3.5做UART通信端口
UCTL0 |= SWRST; //开始设置串口
ME1 |= URXE0; // 使能USART0的发送和接受
UCTL0 |= CHAR; // 选择8位字
UTCTL0 |= SSEL0; //选择模块时钟源 ; // UCLK = ACLK
UBR00 = 0x06; // 波特率9600
UBR10 = 0x00; //
UMCTL0 = 0xfb; // Modulation
UCTL0 &= ~SWRST; //设置串口 完毕
IE1 |= URXIE0;
}
#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx (void)
{
uchar ch;
_DINT();
IE1 &= ~URXIE0; //ES = 0;_DINT();
if((IFG1 & URXIFG0))
{
ch = RXBUF0;
if ((ch == '$') && (gps_flag == 0)) //如果收到字符'$',便开始接收
{
rev_start = 1;
rev_stop = 0;
}
if (rev_start == 1) //标志位为1,开始接收
{
rev_buf[num++] =ch; //字符存到数组中
if (ch == '
') //如果接收到换行
{
rev_buf[num] = ' ';
rev_start = 0;
rev_stop = 1;
gps_flag = 1;
num = 0;
}
}
}
IFG1&=~URXIFG0;
IE1 |= URXIE0; // _EINT();
_EINT();
}
上面中断的接收直接用ch可以吗,还是要用数组求改一下,就是现在中断进不去,不知为啥
哪位大神给看看
[
本帖最后由 cuanli007 于 2012-8-13 11:16 编辑 ]
此帖出自
小平头技术问答
第二行 是不是有问题来着。。。
一周热门 更多>