串口调试遇到的问题

wotu0   2008-4-22 01:02 楼主
在用串口调试的时候,发数据在串口上显示,全速运行时有些数据没有显示出来,但一步一步仿真的时候就能显示出来,这是为什么呢??

回复评论 (4)

多半是由于你覆盖原来的了数据,
点赞  2008-4-22 10:09
LZ注意下发送循环计数变量和发送中断标记是不是用的不对
点赞  2008-4-22 10:18
发送程序最好加些延时或这样写
void transmit(int wei,unsigned char *date)
{
int i=0;
while(i<wei)
{
while ((IFG1 & UTXIFG0) == 1); // USART1 TX buffer ready?
TXBUF0 = date[i];
i++;
}
}
点赞  2008-4-22 10:54
对,加一句while ((IFG1 & UTXIFG0) == 1); 可能你发送的太快串口发送缓存还没发完,数据就被覆盖了
点赞  2008-4-23 13:15
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复