|
MCU:MSP430F169
通讯方式:串口异步通讯
响应方式:中断 用串口调试工具发送ascii码字符
中断部分代码:
#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx (void)
{
while (!(IFG1 & UTXIFG0));
controldata=RXBUF0;
TI=1;
Flag_Communication=1;
}
主函数对中断的响应:
if(Flag_Communication)
{
while(tr)
{
switch(controldata)
{
case 'a' : TXBUF0='r' ; break; //反馈一个r
case 'b' : Receive_Data();break;
}
}
}
/***********Receive_Data()子函数*************/
void Receive_Data()
{char i;
unsigned char d[2];
unsigned char tempd[2];
while(TI==0);
TI=0;
for(i=0;i<2;i++)
{
tempd=RXBUF0;
d=tempd-48;
}
}
问题:
上位机发送a,反馈r。
发送b12,数组m[0]=1,m[1]也=1.这是为什么?第二个数据“2”为什么接收不到?
应用目的:本来想发送20个数据给下位机的,现在连2个都不能实现
[ 本帖最后由 linjingui 于 2009-8-27 11:45 编辑 ]
|
|