语法: value=kbhit( );和 value=kbhit( stream );
KBHIT( )是PIC CCS编译器中PIC单片机的专有函数。
语法: value=kbhit( );
value=kbhit( stream );
参数: 将stream这个id分配成可访问的RS232端口;若没有参数stream,该函数将getc()用作最初的stream,即默认参数为getc();
返回值: 如果getc()将要等待一个字符进来,则kbhit( )的返回值为0(或FALSE);
如果一个字符对于接收函数getc()来说已经准备好了,则kbhit( )的返回值为1(或TRUE);
功能: 如果一个字符的开始位已经通过RS232的RCV脚发送出去,RS232在软件控制下,使kbhit( )返回TRUE; 如果一个字符已经被接收了,且在硬件缓冲区等待getc()来读取时,则RS232采用硬件使得kbhit( )返回TRUE; kbhit( )常用来检测不带停止位的数据,且等待数据出现.注意:在RS232软件控制的情况下, kbhit( )函数至少被调用10次,目的是保证数据不被丢失.
有效性: 适合所有的设备.
要求: 必须包含#use rs232这样的语句,才可使能kbhit( )函数;
例子: char timed_getc(){
long timeout; //声明暂态长整型变量timeout
timeout_error=FALSE; //将timeout_error赋初值FALSE
timeout=0;
while(!kbhit( ) && (++timeout<50000) )
delay_us(10); //延时为10usX50000,即0.5s
if( kbhit( ) ) return( getc() ); //如果一个字符已经被接收了kbhit()返回1;
else{
timeout_error=TRUE; //若没有接收到数据,则将timeout_error赋TRUE
return(0);
}
}
例子文件: ex_tgetc.c;