안녕하세요, 특정 문자열을받는 코드를 작성하는 방법을 알고 싶습니다. 예를 들어,이 하나만 OK,이 경우에만 "OK"문자열 만 필요합니다.rs232의 장치에서 전체 문자열을 수신하는 코드를 작성하는 방법은 무엇입니까?
또 다른 문자열도 OK 같은 내가 더 안정적인 코드를 RS232 시리얼에서 수신 데이터에 대한 인터럽트를 사용
메신저를 필요로 꾸물 거리지 작동 AT89S52 마이크로 컨트롤러 카일의 C51에 쓰기 코드를 가지고있다.
void _esp8266_getch() interrupt 4 //UART Rx.{
if(TI){
TI=0;
xmit_bit=0;
return ;
}
else
{
count=0;
do
{
while(RI==0);
rx_buff=SBUF;
if(rx_buff==rx_data1) //rx_data1 = 0X0D /CR
{
RI=0;
while(RI==0);
rx_buff=SBUF;
if(rx_buff==rx_data2) // rx_data2 = 0x0A /LF
{
RI=0;
data_in_buffer=1;
if(loop_conti==1)
{
if(rec_bit_flag==1)
{
data_in_buffer=0;
loop_conti=0;
}
}
}
}
else
{
if(data_in_buffer==1)
{
received[count]=rx_buff; //my buffer in which storing string
rec_bit_flag=1;
count++;
loop_conti=1;
RI=0;
}
else
{
loop_conti=0;
rec_bit_flag=0;
RI=0;
}
}
}
while(loop_conti==1);
}
rx_buff=0;
}
분명히 인터럽트 루틴에서 do-while (모든 루프)을 구현하면 안됩니다. 인터럽트 루틴은 가능한 한 파삭 파삭해야합니다 – Sudhee
rs232 대신에 uart를 사용 했습니까? –
예, rs 232는 uart를 의미합니다 –