串口发送数据的函数,但串口不停的向外发数据,该怎么才能只发一次?
写了一个串口发送数据的函数,在向SBUF中写完数据后,串口就不停的向外发数据,该怎么才能只发一次?已经试了多种方法,仍然没有解决。查询法和中断法都没有想出解决办法。
主要问题集中在只要SBUF中写入一个数据,就会导致串口不停的向外发送此数据,应该是在不停的执行主函数,形成了死循环。可是如果每次程序都是从头到尾执行的话,SBUF必然要发出数据的。我用中断法设置标签flag作为发送数据的标志,试图使程序只执行一次,失败了。 可在程序结尾加 while(1); //使程序停在此处,虽然这样程序只执行了一次,但是这样就无法动态更新数据。请教高手解决此问题!谢谢!
main()
{
init(); //初始化函数
capture(); //ad采集函数
SBUF=value; //value是从ad采集来的数据,通过串口发给上位机
while(!TI);
TI=0;
}
参考资料:如果您的回答是从其他地方引用,请表明出处