DSP2407SCI接收接收串口调试助手多个字节时,出错的问题
程序在接受串口调试助手单个字节时是正确的,一次接受多个字节(准备写MODBUS需要接受多个字节)是出现错误,搞了半天不知道怎么回事。http://cache.amobbs.com/bbs_upload782111/files_24/ourdev_524317.png
(原文件名:QQ截图未命名.png)
如果按上图的方式发出两个字节,DSP的接收中断会不会来不及处理? /***********************************************
//函数功能:SCI接收中断服务子程序
//输入参数:
//输出参数:
//注意:When a new character is ready to be read from the SCIRXBUF register
***********************************************/
void RXINT_ISR(void)
{
//unsigned char i;
//i = *SCIRXBUF;//接收串口的数据放在临时寄存器中
//如果帧数据结束(Modbus.re_ok==1)或者接收数据个数大于定义的缓冲区大小
//if( Modbus.re_ok || (Modbus.re_count >= TX_BUFFER_LENGTH))
// Modbus.re_count = 0;
//else
// {
Modbus.re_buf = *SCIRXBUF;//接收缓冲区增加一个数据
Modbus.re_count++;
//while(!TestBit0(*SCIRXST,6));
//Modbus.re_buf = *SCIRXBUF;
//Modbus.re_count++;
// }
//*T1CNT = 0x0000; /*定时器的计数初值 */
}
/***********************************************
//函数功能:
//输入参数:
//输出参数:
//注意:
***********************************************/
interrupt void GISR1(void)
{
switch(*PIVR)
{
case 0x0006:
RXINT_ISR();
break;
case 0x0007:
TXINT_ISR();
break;
default:
break;
}
} 做过的朋友帮看一下 问题已解决,由于我DSP使能了奇校验,调试助手没有使能,教训啊 mark
页:
[1]