新手上路
- 积分
- 24
- 金钱
- 24
- 注册时间
- 2017-10-9
- 在线时间
- 4 小时
|
20金钱
void USART2_IRQHandler(void)
{
My_USART1_Init();
if(USART_GetITStatus(USART2, USART_IT_RXNE) ==SET)
{
RxBuf[RxSize++]=USART_ReceiveData(USART2);
if(RxSize!=0)
{
led_b=!led_b;
k=1;
}
}
USART_ClearFlag(USART1,USART_FLAG_TC);
asd();
RxSize=0;
}
void asd(void)
{
if(hand("OK"))
{
UART1_Send_Array(RxBuf,RxSize);
}
}
u8 hand(u8 *p)
{
if(strstr((const char*)RxBuf,(const char*)p)!=NULL)
{
return 1;
}
else
{
return 0;
}
}
|
最佳答案
查看完整内容[请看2#楼]
你里面有个严重的问题是RxSize变量的处理,这个变量你接收串口数据时,每接一个就清0了,所以你每次接收的数据都只会在RxBuf[0]里面,所以你的什么握手函数是肯定通不过的。
|