问题是:发出去的数组,总会多产生一个数:0x30在第一位,
比如,要发送数组{1,2,3},结果发出去的是{30,1,2}
要发{1,2,3,4},结果发出去的是{30,1,2,3}
考虑到我指针是char型的,它可能把我char型为0的0x30给发出去了;
怎么解决这个问题呢???
求各位大神解答,万分感谢!
int main(void)
{
USART_Config();
Req_Cmd_TxBuf[0]=0;
Req_Cmd_TxBuf[1]=1;
Req_Cmd_TxBuf[2]=1;
usSndBufferCount=3; //数组
vMBPortSerialEnable( FALSE, TRUE );//发送使能,接收关闭
pucSndBufferCur=(CHAR*)Req_Cmd_TxBuf; //数组赋给指针
while(1)
{
}
}
中断函数内
if(USART_GetITStatus(USART1, USART_IT_TC) == SET;//产生发送中断
if( usSndBufferCount != 0 ) //未发送数据数量不为0
{
Usart_SendByte( ( char)*pucSndBufferCur ); //发送当前指针所指的值
pucSndBufferCur++; //指向下一个发送数据
usSndBufferCount--; //未发送数据减1
}
USART_ClearITPendingBit(USART1, USART_IT_TC);//清除中断标志
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
不管怎么改,还是会多发送一个数据
一周热门 更多>